Python中怎么使用matplotlib實(shí)現(xiàn)數(shù)據(jù)可視化,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
目前創(chuàng)新互聯(lián)已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、青海網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
本期我們構(gòu)建一組簡(jiǎn)單的時(shí)間變化圖表數(shù)據(jù),當(dāng)然還有我們常用的顏色字典構(gòu)建。具體如下:
import pandas as pd import numpy as np import matplotlib.pyplot as plt test_dict = {'x':[0,5,10,15,20,25,30],'year':['1990','1995','2000','2005','2010','2015','2020']} artist_04 = pd.DataFrame(test_dict) color = ("#F5A34D", "#F26F77", "#48AEBA", "#A3BA74","#958298", "#B88357",'#608CB1' ) data = artist_04['x'].to_list() data_color = dict(zip(data,color)) data_color
顏色字典如下:
{0: '#F5A34D', 5: '#F26F77', 10: '#48AEBA', 15: '#A3BA74', 20: '#958298', 25: '#B88357', 30: '#608CB1'}
詳細(xì)繪圖代碼如下:
fig,ax = plt.subplots(figsize=(8,4),dpi=200,facecolor='#FFF7F2',edgecolor='#FFF7F2') ax.set_facecolor('#FFF7F2') #繪制中間橫線 ax.set_ylim(-.5,1.5) #繪制具有端點(diǎn)形狀的直線 ax.plot([-3,38],[.5,.5],"-o",lw=1.2,color='gray',markerfacecolor="w",mec='gray',ms=5, markeredgewidth=1.,zorder=1) #分上下情況繪制點(diǎn)、線混合圖形 for x in [0,10,20,30]: #繪制橫線上的散點(diǎn),顏色不同 ax.scatter(x,.5,s=120,color=data_color[x],zorder=2) #繪制疊加在顏色散點(diǎn)之上的散點(diǎn),顏色為白色 ax.scatter(x,.5,s=50,zorder=3,color='white') #繪制散點(diǎn)和圓柱之間的連接線,端點(diǎn)為圓點(diǎn) ax.plot([x,x],[.5,.5+.6],"-o",color=data_color[x],lw=.6,mfc="w",ms=5,mew=1.2,zorder=3) #繪制橫置圓柱圖 ax.plot([x,x+7.5],[.5+.6,.5+.6],lw=15,color=data_color[x],solid_capstyle='round',zorder=1) ax.scatter(x,.5+.6,s=80,zorder=3,color='white') ax.text(x+4,.5+.6,s='Lorem Ipsum',color='white',fontsize=7.5,fontweight='semibold',ha='center', va='center') #添加年份 ax.text(x-1.4,.5+.2,s=artist_04.loc[artist_04['x']==x,'year'].values[0],color='#686866',fontsize=12, fontweight='bold',rotation=90) #添加描述文字 ax.text(x+.5,.5+.3,'Optionally, the text can bedisplayed\n in anotherpositionxytext.Anarrow\npointingfrom the text totheannotated\npoint xy canthen beaddedbydefining\narrowprops.', ha='left', va='center',fontsize = 4,color='gray') for x in [5,15,25]: #繪制橫線上的散點(diǎn),顏色不同 ax.scatter(x,.5,s=120,color=data_color[x],zorder=2) #繪制疊加在顏色散點(diǎn)之上的散點(diǎn),顏色為白色 ax.scatter(x,.5,s=50,zorder=3,color='white') #繪制散點(diǎn)和圓柱之間的連接線,端點(diǎn)為圓點(diǎn) ax.plot([x,x],[.5,.5-.6],"-o",color=data_color[x],lw=.6,mfc="w",ms=5,mew=1.2,zorder=3) #繪制橫置圓柱圖 ax.plot([x,x+7.5],[.5-.6,.5-.6],lw=15,color=data_color[x],solid_capstyle='round',zorder=1) ax.scatter(x,.5-.6,s=80,zorder=3,color='white') ax.text(x+4,.5-.6,s='Lorem Ipsum',color='white',fontsize=7.5,fontweight='semibold',ha='center', va='center') #添加描述文字 ax.text(x+.5,.5-.3,'Optionally, the text can bedisplayed\n in anotherpositionxytext.Anarrow\npointingfrom the text totheannotated\npoint xy canthen beaddedbydefining\narrowprops.', ha='left', va='center',fontsize = 4,color='gray') #添加年份 ax.text(x-1.4,.5-.4,s=artist_04.loc[artist_04['x']==x,'year'].values[0],color='#686866',fontsize=12, fontweight='bold',rotation=90) #添加題目文本 ax.axis('off') ax.text(.49,1.15,'\nTIMELINE INFOGRAPHICS',transform = ax.transAxes, ha='center', va='center',fontsize = 20,color='gray',fontweight='light') ax.text(.92,.00,'\nVisualization by DataCharm',transform = ax.transAxes, ha='center', va='center',fontsize = 5,color='black') plt.savefig(r'F:\DataCharm\商業(yè)藝術(shù)圖表仿制\artist_04.png',width=8,height=4, dpi=900,bbox_inches='tight',facecolor='#FFF7F2')
知識(shí)點(diǎn):
(1)熟悉ax.plot()函數(shù)方法,其他參數(shù)設(shè)置不同對(duì)結(jié)果也不同。
(2)ax.scatter()繪制散點(diǎn)。
(3)ax.text()文本的靈活添加。
(4)顏色的合理選擇。
結(jié)果圖表如下:
看完上述內(nèi)容,你們掌握Python中怎么使用matplotlib實(shí)現(xiàn)數(shù)據(jù)可視化的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!