




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第6章可視化繪圖—MatplotlibMatplotlib的安裝Matplotlib的繪制流程Matplotlib基礎圖表的繪制Matplotlib高級圖表實戰(zhàn)1:我國地區(qū)產(chǎn)值數(shù)據(jù)可視化實戰(zhàn)2:餐廳小費贈予情況數(shù)據(jù)可視化掌握Matplotlib繪制圖表的流程及方法。掌握Matplotlib繪制散點圖的方法。掌握Matplotlib繪制直方圖的方法。掌握Matplotlib繪制折線圖的方法。掌握Matplotlib繪制餅圖的方法。掌握Matplotlib繪制箱型圖的方法。掌握Matplotlib繪制正弦圖和余弦圖的方法。掌握Matplotlib繪制誤差條形圖的方法。掌握Matplotlib繪制玫瑰圖的方法。掌握Matplotlib繪制詞云的方法。6.1Matplotlib的安裝6.1Matplotlib的安裝安裝Matplotlib的方式有很多種。這里使用Anaconda發(fā)行版安裝Matplotlib。在“開始”菜單欄AnacondaPrompt中輸入如下代碼即可安裝。condainstallMatplotlib6.2Matplotlib的繪制流程繪圖結(jié)構(gòu)——Figure、Axes、Axis、Artist繪圖流程第一個交互式圖表其他常用操作6.2Matplotlib的繪制流程6.2.1繪圖結(jié)構(gòu)——Figure、Axes、Axis、ArtistMatplotlib中的所有內(nèi)容都是按層次結(jié)構(gòu)組織的。層次結(jié)構(gòu)的頂部是matplotlib.pyplot模塊提供的Matplotlib“狀態(tài)機環(huán)境”。在此級別,使用簡單函數(shù)將繪圖元素(線條、圖像、文本等)添加到當前圖形中的當前軸。層次結(jié)構(gòu)的下一層是面向?qū)ο蠼涌诘牡谝粚?,其中pyplot僅用于少數(shù)功能,例如圖形創(chuàng)建,用戶顯式創(chuàng)建并跟蹤圖形和軸對象。在這一層,用戶使用pyplot創(chuàng)建圖形,通過這些圖形,可以創(chuàng)建一個或多個軸對象。這些坐標區(qū)對象隨后用于大多數(shù)繪圖操作。6.2Matplotlib的繪制流程6.2.1繪圖結(jié)構(gòu)——Figure、Axes、Axis、ArtistFigure,圖層標記為最外部的紅框,可以理解為畫布。所有的內(nèi)容都會畫在這個“畫板”上,F(xiàn)igure會包含所有的子坐標軸。6.2Matplotlib的繪制流程6.2.1繪圖結(jié)構(gòu)——Figure、Axes、Axis、ArtistAxes,在圖中標記為藍色的內(nèi)框,是一套坐標軸的組合,可以理解為一個坐標系。Axes在英文里是Axis的復數(shù)形式,也就是說axes代表的其實是figure當中的一套坐標軸。之所以說一套而不是兩條坐標軸,是因為如果畫三維的圖,axes就代表3條坐標軸了。所以,在一個figure當中,每添加一次subplot,其實就是添加了一套坐標軸,也就是添加了一個axes,放在二維坐標里就是添加了兩條坐標軸,分別是x軸和y軸。6.2Matplotlib的繪制流程6.2.1繪圖結(jié)構(gòu)——Figure、Axes、Axis、ArtistAxis,在圖中標記為綠色的坐標軸,其包含刻度和標簽。6.2Matplotlib的繪制流程6.2.1繪圖結(jié)構(gòu)——Figure、Axes、Axis、ArtistArtist,所有的繪圖元素的基類,包含所有在figure中可以被看到的都是一個artist。當一個figure被渲染的時候,所有的artists都被畫在畫布canvas上。大多數(shù)的artist都是和某個axes綁定的,這些artist不能同時屬于多個axes。6.2Matplotlib的繪制流程6.2.2繪圖流程①創(chuàng)建畫板:fig=plt.figure(),后面還可以跟著對畫板的各種處理。②創(chuàng)建子圖:axis=fig.subplot(),一次創(chuàng)建多張子圖,axes是一個數(shù)組。③面向?qū)ο笫嚼L圖,創(chuàng)建圖形與圖例。顯示圖片或者保存圖片。6.2Matplotlib的繪制流程6.2.3第一個交互式圖表首先導入pyplot模塊,將其命名為plt。然后創(chuàng)建一個畫布。importmatplotlib.pyplotasplt#導入模塊fig=plt.figure(figsize=(8,7))#創(chuàng)建畫布<Figuresize576x504with0Axes>6.2Matplotlib的繪制流程6.2.3第一個交互式圖表一般使用add_subplot()函數(shù)添加子圖,其有四種簽名形式。importmatplotlib.pyplotasplt#導入模塊importnumpyasnpfromnumpy.randomimportrandnfig=plt.figure(figsize=(8,7))#創(chuàng)建畫布ax1=fig.add_subplot(1,1,1)#使用ax1變量指向子圖對象ax1.hist(randn(50))#使用軸向圖的方法創(chuàng)建子圖6.2Matplotlib的繪制流程6.2.3第一個交互式圖表開發(fā)者需要對坐標軸上的標簽進行規(guī)定,通常使用xlabel()函數(shù)與ylabel()函數(shù)進行此操作importmatplotlib.pyplotasplt#導入模塊importnumpyasnpfromnumpy.randomimportrandnfig=plt.figure(figsize=(8,7))#創(chuàng)建畫布ax1=fig.add_subplot(1,1,1)#使用ax1變量指向子圖對象ax1.hist(randn(50))#使用軸向圖的方法創(chuàng)建子圖plt.rcParams['font.family']=['sans-serif']plt.rcParams['font.sans-serif']=['SimHei']#解決中文顯示亂碼問題(視實際情況而定是否添加此代碼)plt.xlabel("x軸")plt.ylabel("y軸")6.2Matplotlib的繪制流程6.2.3第一個交互式圖表在添加了坐標軸標簽之后,還可以使用legend()函數(shù)添加圖例importmatplotlib.pyplotasplt#導入模塊importnumpyasnpfromnumpy.randomimportrandnfig=plt.figure(figsize=(8,7))#創(chuàng)建畫布ax1=fig.add_subplot(1,1,1)#使用ax1變量指向子圖對象ax1.hist(randn(50))#使用軸向圖的方法創(chuàng)建子圖plt.rcParams['font.family']=['sans-serif']plt.rcParams['font.sans-serif']=['SimHei']plt.xlabel("x軸")plt.ylabel("y軸")plt.legend(['數(shù)據(jù)'])#添加圖例plt.show()#顯示圖表6.2Matplotlib的繪制流程6.2.4其他常用操作設置坐標軸的長度和范圍importnumpyasnpfig=plt.figure()#添加繪圖區(qū)域a1=fig.add_axes([0,0,1,1])#準備數(shù)據(jù)x=np.arange(1,10)#繪制函數(shù)圖像a1.plot(x,np.exp(x))#添加題目a1.set_title('示例')plt.show()6.2Matplotlib的繪制流程6.2.4其他常用操作設置坐標軸的長度和范圍importmatplotlib.pyplotaspltimportnumpyasnpfig=plt.figure()a1=fig.add_axes([0,0,1,1])x=np.arange(1,10)a1.plot(x,np.exp(x),'r')a1.set_title('示例')#設置y軸a1.set_ylim(0,1000)#設置x軸a1.set_xlim(0,20)plt.show()6.2Matplotlib的繪制流程6.2.4其他常用操作設置圖表的線形、屬性importmatplotlib.pyplotaspltimportnumpyasnpy=np.arange(1,5)print(y)plt.plot(y,c='g',marker='o')#圓形標記plt.plot(y+1,c='0.5',marker='D')#菱形標記plt.plot(y+2,marker='^')#正三角標記plt.plot(y+3,'p')#五邊形標記plt.show()6.2Matplotlib的繪制流程6.2.4其他常用操作設置圖表刻度和網(wǎng)格importnumpyasnpimportmatplotlib.pyplotaspltx=np.array([1,2,3,4])y=np.array([1,4,9,16])plt.title("網(wǎng)格線圖表")plt.xlabel("x軸")plt.ylabel("y軸")plt.plot(x,y)plt.grid()#網(wǎng)格plt.show()6.2Matplotlib的繪制流程6.2.4其他常用操作改變網(wǎng)格線線條的形狀importnumpyasnpimportmatplotlib.pyplotaspltx=np.array([1,2,3,4])y=np.array([1,4,9,16])plt.title("網(wǎng)格線圖表")plt.xlabel("x軸")plt.ylabel("y軸")plt.plot(x,y)plt.grid(color='r',linestyle='-.',linewidth=0.5)plt.show()6.3Matplotlib基礎圖表的繪制散點圖的繪制直方圖的繪制折線圖的繪制餅圖的繪制箱線圖的繪制正弦圖和余弦圖的繪制誤差條形圖的繪制玫瑰圖的繪制詞云的繪制6.3Matplotlib基礎圖表的繪制6.3.1散點圖的繪制importnumpyasnpfrommatplotlibimportpyplotaspltimportpandasaspddata=pd.read_csv('penguins_size.csv')ax1=plt.figure(figsize=(8,7))plt.scatter(x=data.flipper_length_mm,y=data.body_mass_g)plt.xlabel('腳掌長度/mm')plt.ylabel('體重/g')plt.legend(['節(jié)點'])plt.title('帕爾默企鵝腳掌長度與體重關(guān)系圖')plt.show()6.3Matplotlib基礎圖表的繪制6.3.2直方圖的繪制importnumpyasnpfrommatplotlibimportpyplotaspltimportpandasaspddata=pd.read_csv('penguins_size.csv')ax1=plt.figure(figsize=(8,7))plt.hist(data['flipper_length_mm'],align='left')plt.xlabel('腳掌長度/mm')plt.ylabel('數(shù)量/只')plt.legend(['數(shù)量'])plt.title('帕爾默企鵝腳掌長度基本情況')plt.show()6.3Matplotlib基礎圖表的繪制6.3.2直方圖的繪制importnumpyasnpfrommatplotlibimportpyplotaspltimportpandasaspddata=pd.read_csv('penguins_size.csv')ax1=plt.figure(figsize=(8,7))plt.hist(data['body_mass_g'],align='left')plt.xlabel('體重/g')plt.ylabel('數(shù)量/只')plt.legend(['數(shù)量'])plt.title('帕爾默企鵝體重分布基本情況')plt.show()6.3Matplotlib基礎圖表的繪制6.3.3折線圖的繪制importnumpyasnpfrommatplotlibimportpyplotaspltimportpandasaspddata=pd.read_csv('人口.csv',encoding='gbk')x=data.年份y=data.人口plt.title("1949年-2021年全國人口情況")plt.xlabel("年份")plt.ylabel("人口(人)")plt.plot(x,y)plt.grid(color='r',linestyle='-.',linewidth=0.5)plt.show()6.3Matplotlib基礎圖表的繪制6.3.3折線圖的繪制importnumpyasnpfrommatplotlibimportpyplotaspltimportpandasaspdplt.figure(figsize=(12,7))data=pd.read_csv('人口.csv',encoding='gbk')x=data.年份y1=data.男性y2=data.女性plt.title("1949年-2021年全國人口情況")plt.xlabel("年份")plt.ylabel("比例/%")plt.plot(x,y1)plt.plot(x,y2,'r')plt.legend(['男性','女性'])plt.grid(color='r',linestyle='-.',linewidth=0.5)plt.show()6.3Matplotlib基礎圖表的繪制6.3.4餅圖的繪制importnumpyasnpfrommatplotlibimportpyplotaspltimportpandasaspddata=pd.read_csv('news.csv')x=data['count']plt.pie(x,labels=['sport','tech','business','entertainment','politics'],autopct="%1.1f%%")plt.title("新聞播報種類比例")plt.show()6.3Matplotlib基礎圖表的繪制6.3.4餅圖的繪制importnumpyasnpfrommatplotlibimportpyplotaspltimportpandasaspdplt.rcParams['font.sans-serif']=['SimHei']#顯示中文matplotlib.rcParams['axes.unicode_minus']=Falsedata=pd.read_csv('news.csv')x=data['count']explode=[0,0,0,0.3,0]colors=['yellow','green','red','blue','pink']plt.pie(x,labels=['sport','tech','business','entertainment','politics'],colors=colors,explode=explode,autopct="%1.1f%%")plt.title("新聞播報種類比例")plt.show()6.3Matplotlib基礎圖表的繪制6.3.5箱線圖的繪制箱線圖能顯示出一組數(shù)據(jù)的最大值、最小值、中位數(shù)及上下四分位數(shù)。在箱線圖中,從上四分位數(shù)到下四分位數(shù)繪制一個盒子,然后用一條垂直觸須(形象地稱為“盒須”)穿過盒子的中間。上垂線延伸至上邊緣(最大值),下垂線延伸至下邊緣(最小值)。箱線圖結(jié)構(gòu)如右圖所示。一般使用boxplot()函數(shù)來繪制箱線圖。其具體代碼如下所示。matplotlib.pyplot.boxplot(x,notch=None,sym=None,vert=None,whis=None,positions=None,widths=None,patch_artist=None,bootstrap=None,usermedians=None,conf_intervals=None,meanline=None,showmeans=None,showcaps=None,showbox=None,showfliers=None,boxprops=None,labels=None,flierprops=None,medianprops=None,meanprops=None,capprops=None,whiskerprops=None,manage_ticks=True,autorange=False,zorder=None,*,data=None)6.3Matplotlib基礎圖表的繪制6.3.5箱線圖的繪制importmatplotlib.pyplotaspltimportnumpyasnpimportmatplotlibplt.figure(figsize=(10,10))#創(chuàng)建畫布plt.rcParams['font.sans-serif']=['SimHei']#顯示中文matplotlib.rcParams['axes.unicode_minus']=False#正常顯示負號np.random.seed(19900108)#固定隨機生成的隨機數(shù)data_1=np.random.normal(100,10,200)data_2=np.random.normal(70,30,200)data_3=np.random.normal(80,20,200)#生成三組隨機數(shù),每組包含正態(tài)分布的平均值、標準差以及期望值data=[data_1,data_2,data_3]#將生成的隨機數(shù)放到數(shù)組中plt.boxplot(data)#創(chuàng)建箱線圖plt.show()6.3Matplotlib基礎圖表的繪制6.3.6正弦圖和余弦圖的繪制importmatplotlib.pyplotaspltimportnumpyasnpplt.rcParams['font.family']=['sans-serif']plt.rcParams['font.sans-serif']=['SimHei']#中文顯示x1=np.linspace(0,2*np.pi,50)#獲取x坐標y1=np.sin(x1)y2=np.cos(x1)#獲取y坐標plt.figure()plt.plot(x1,y1,'r',linestyle='-')plt.plot(x1,y2,'b',linestyle='-.')plt.xlabel('X軸')plt.ylabel('Y軸')plt.title('正弦圖和余弦圖')labels=['sin(x)','cos(x)']#圖例plt.legend(labels,loc='upperleft')plt.grid(color='y',linestyle='-.',linewidth=0.5)plt.show()6.3Matplotlib基礎圖表的繪制6.3.7誤差條形圖的繪制importmatplotlib.pyplotaspltplt.rcParams['font.sans-serif']=['SimHei']x=np.arange(5)y=[91,76,89,120,82]#實際數(shù)據(jù)err=[3,6,10,2,5]#誤差err_attr={"elinewidth":2,"ecolor":"black","capsize":3}#誤差棒的樣式plt.bar(x,y,color="g",width=0.6,yerr=err,error_kw=err_attr,tick_label=list("12345"))#繪制誤差條形圖plt.show()6.3Matplotlib基礎圖表的繪制6.3.7玫瑰圖的繪制importmatplotlib.pyplotaspltnp.random.seed(19680801)#固定隨機數(shù)N=6#玫瑰花瓣個數(shù)theta=np.linspace(0.0,2*np.pi,N,endpoint=False)#角度length=[96,121,100,111,102,81]#長度width=[0.5,0.5,0.5,0.5,0.5,0.5]#寬度fig=plt.figure(figsize=(12,8))plt.subplot(111,projection='polar')#極坐標必須這樣寫bars=plt.bar(theta,length,width=width,color='purple',bottom=0.0)#條形圖繪制plt.title('玫瑰圖')plt.show()6.3Matplotlib基礎圖表的繪制6.3.8詞云的繪制importjiebafromwordcloudimportWordCloudtxt='數(shù)據(jù)分析師,是不同行業(yè)中,專門從事行業(yè)數(shù)據(jù)搜集、整理、分析,并依據(jù)數(shù)據(jù)做出行業(yè)研究、評估和預測的專業(yè)人員。'words=jieba.lcut(txt)#精確分詞newtxt=''.join(words)#空格拼接wordcloud=WordCloud(font_path="msyh.ttc").generate(newtxt)wordcloud.to_file('中文詞云圖1.jpg')6.4Matplotlib高級圖表等值線圖風桿圖多序列條狀圖多序列堆積條狀圖多面板圖6.4Matplotlib高級圖表6.4.1等值線圖等值線圖又稱等量線圖,是以相等數(shù)值點的連線表示連續(xù)分布且逐漸變化的數(shù)量特征的一種圖型,如下圖所示。6.4Matplotlib高級圖表6.4.1等值線圖importmatplotlib.pyplotaspltimportnumpyasnpdx=0.01dy=0.01x=np.arange(-2.0,2.0,dx)#設置橫向數(shù)據(jù)y=np.arange(-2.0,2.0,dy)#設置縱向數(shù)據(jù)X,Y=np.meshgrid(x,y)deff(x,y):return(1-y**5+x**5)*np.exp(x**2-y*+2)#設置數(shù)據(jù)函數(shù)C=plt.contour(X,Y,f(X,Y),8,colors='black')#繪制等值線圖plt.contourf(X,Y,f(X,Y),8)plt.clabel(C,inline=1,fontsize=10)plt.show()6.4Matplotlib高級圖表6.4.1等值線圖importmatplotlib.pyplotaspltimportnumpyasnpdx=0.01dy=0.01x=np.arange(-2.0,2.0,dx)y=np.arange(-2.0,2.0,dy)X,Y=np.meshgrid(x,y)deff(x,y):return(1-y**5+x**5)*np.exp(-x**2-y*+2)C=plt.contour(X,Y,f(X,Y),8,colors='white')plt.contourf(X,Y,f(X,Y),8)plt.clabel(C,inline=1,fontsize=10)plt.colorbar()#添加圖例說明plt.show()6.4Matplotlib高級圖表6.4.2風桿圖風桿是風速和風向的一種表現(xiàn)形式,主要由氣象學家使用。理論上講,風桿圖可以被用來可視化任何類型的二維向量。風桿圖和箭頭類似,但不同的是通過箭頭的長度表示向量的大小,而風桿通過把直線或者三角形作為大小增量提供了更多關(guān)于向量大小的信息,如下圖所示。6.4Matplotlib高級圖表6.4.2風桿圖importmatplotlib.pyplotaspltimportnumpyasnpx=np.linspace(-20,20,8)#設置橫向風向y=np.linspace(0,20,8)#設置縱向風向X,Y=np.meshgrid(x,y)U,V=X+25,Y-35plt.subplot(1,2,1)plt.barbs(X,Y,U,V,flagcolor='green',alpha=0.75)plt.grid(True,color='gray')plt.subplot(1,2,2)#設置風力plt.quiver(X,Y,U,V,facecolor='red',alpha=0.75)plt.grid(True,color='grey')plt.show()6.4Matplotlib高級圖表6.4.3多序列條狀圖importmatplotlib.pyplotaspltimportnumpyasnpimportpandasaspd#導入相關(guān)模塊data={'series1':[1,3,4,3,5],'series2':[2,4,5,2,4],'series3':[3,2,3,1,3]}df=pd.DataFrame(data)df.plot(kind='bar')plt.show()6.4Matplotlib高級圖表6.4.3多序列條狀圖importmatplotlib.pyplotaspltimportnumpyasnpimportpandasaspddata={'series1':[1,3,4,3,5],'series2':[2,4,5,2,4],'series3':[3,2,3,1,3]}df=pd.DataFrame(data)df.plot(kind='barh')#設置水平風向plt.show()6.4Matplotlib高級圖表6.4.4多序列堆積條狀圖importmatplotlib.pyplotaspltimportnumpyasnpseries1=np.array([3,4,5,3])#數(shù)組一series2=np.array([1,2,2,5])#數(shù)組二series3=np.array([2,3,3,4])#數(shù)組三index=np.arange(4)plt.axis([0,4,0,15])plt.bar(index,series1,color='r')#條狀圖一plt.bar(index,series2,color='b',bottom=series1)#條狀圖二plt.bar(index,series3,color='g',bottom=(series2+series1))#條狀圖三plt.xticks(index+0.4,['Jan15','Feb15','Mar15','Apr15'])plt.show()6.4Matplotlib高級圖表6.4.4多序列堆積條狀圖importmatplotlib.pyplotaspltimportnumpyasnpindex=np.arange(4)series1=np.array([3,4,5,3])series2=np.array([1,2,2,5])series3=np.array([2,3,3,4])plt.axis([0,15,0,4])plt.barh(index,series1,color='w',hatch='xx')plt.barh(index,series2,color='w',hatch='///',left=series1)plt.barh(index,series3,color='w',hatch='\\\\\\',left=(series1+series2))plt.yticks(index+0.4,['Jan','Feb','Mar','Apr'])plt.show()6.4Matplotlib高級圖表6.4.5多面板圖importmatplotlib.pyplotaspltfig=plt.figure()ax=fig.add_axes([0.1,0.1,0.8,0.8])inmer_ax=fig.add_axes([0.6,0.6,0.25,0.25])6.4Matplotlib高級圖表6.4.5多面板圖importmatplotlib.pyplotaspltimportnumpyasnpfig=plt.figure()ax=fig.add_axes([0.1,0.1,0.8,0.8])inner_ax=fig.add_axes([0.6,0.6,0.25,0.25])x1=np.arange(10)y1=np.array([1,8,3,1,5,6,4,2,9,1])x2=np.arange(10)y2=np.array([1,3,4,2,8,9,5,7,7,3])ax.plot(x1,y1)inner_ax.plot(x2,y2)plt.show()6.4Matplotlib高級圖表6.4.5多面板圖importmatplotlib.pyplotaspltgs=plt.GridSpec(3,3)fig=plt.figure(figsize=(8,8))fig.add_subplot(gs[1,:2])fig.add_subplot(gs[0,:2])fig.add_subplot(gs[2,0])fig.add_subplot(gs[:2,2])fig.add_subplot(gs[2,1:])plt.show()6.4Matplotlib高級圖表6.4.5多面板圖importmatplotlib.pyplotaspltimportnumpyasnpgs=plt.GridSpec(3,3)fig=plt.figure(figsize=(8,8))x1=np.array([1,3,2,5])y1=np.array([4,3,7,2])x2=np.arange(5)y2=np.array([3,2,4,6,4])s1=fig.add_subplot(gs[1,:2])s1.plot(x,y,'r')#折線圖一s2=fig.add_subplot(gs[0,:2])s2.bar(x2,y2)#直方圖s3=fig.add_subplot(gs[2,0])s3.barh(x2,y2,color="g")#柱狀圖s4=fig.add_subplot(gs[:2,2])s4.plot(x2,y2,'k')#折線圖二s5=fig.add_subplot(gs[2,1:])s5.plot(x1,y1,'b^',x2,y2,'yo')#散點圖plt.show()6.5實戰(zhàn)1:我國地區(qū)產(chǎn)值數(shù)據(jù)可視化任務說明任務實現(xiàn)6.5實戰(zhàn)1:我國地區(qū)產(chǎn)值數(shù)據(jù)可視化6.5.1任務說明本案例以省份劃分各個區(qū)域,現(xiàn)就我國2016年至2020年各省份的生產(chǎn)總值做詳細分析。主要分析目標有:①我國各省市自2016年至2020年的生產(chǎn)總值發(fā)展趨勢。②我國各省市2020年生產(chǎn)總值比較。③我國各省市2020年生產(chǎn)總值占比分析。④我國省市2020年生產(chǎn)總值分布情況。importnumpyasnpfrommatplotlibimportpyplotaspltimportpandasaspddata=pd.read_csv('各地區(qū)生產(chǎn)總值.csv',encoding='gbk')data.set_index('地區(qū)',inplace=True)#將地名設置為索引值name=['北京市','天津市','河北省','山西省','內(nèi)蒙古自治區(qū)','遼寧省','吉林省','黑龍江省','上海市','江蘇省','浙江省','安徽省','福建省','江西省','山東省','河南省','湖北省','湖南省','廣東省','廣西壯族自治區(qū)','海南省','重慶市','四川省','貴州省','云南省','西藏自治區(qū)','陜西省','甘肅省','青海省','寧夏回族自治區(qū)','新疆維吾爾自治區(qū)','臺灣省']count=[]6.5實戰(zhàn)1:我國地區(qū)產(chǎn)值數(shù)據(jù)可視化6.5.2任務實現(xiàn)forname1inname:new=list(data.loc[name1])count.append(new)#整理數(shù)據(jù),將各個列的數(shù)據(jù)匯總為一個列表year=['2016年','2017年','2018年','2019年','2020年']plt.figure(figsize=(20,10))forcount1incount:plt.plot(year,count1)plt.legend(name)plt.title('2016-2020年各省市總生產(chǎn)值發(fā)展趨勢(單位/億元)')plt.show()1.我國各省市自2016年至2020年的生產(chǎn)總值發(fā)展趨勢6.5實戰(zhàn)1:我國地區(qū)產(chǎn)值數(shù)據(jù)可視化6.5.2任務實現(xiàn)1.我國各省市自2016年至2020年的生產(chǎn)總值發(fā)展趨勢importnumpyasnpfrommatplotlibimportpyplotaspltimportpandasaspddata=pd.read_csv('各地區(qū)生產(chǎn)總值.csv',encoding='gbk')data.set_index('地區(qū)',inplace=True)#將地名設置為索引值name=['北京市','天津市','河北省','山西省','內(nèi)蒙古自治區(qū)','遼寧省','吉林省','黑龍江省','上海市','江蘇省','浙江省','安徽省','福建省','江西省','山東省','河南省','湖北省','湖南省','廣東省','廣西壯族自治區(qū)','海南省','重慶市','四川省','貴州省','云南省','西藏自治區(qū)','陜西省','甘肅省','青海省','寧夏回族自治區(qū)','新疆維吾爾自治區(qū)','臺灣省']plt.figure(figsize=(20,10))plt.bar(name,data['2020年'],width=0.2)plt.xticks(rotation=45)plt.show()6.5實戰(zhàn)1:我國地區(qū)產(chǎn)值數(shù)據(jù)可視化6.5.2任務實現(xiàn)2.我國各省市2020年的生產(chǎn)總值比較importnumpyasnpfrommatplotlibimportpyplotaspltimportpandasaspddata=pd.read_csv('各地區(qū)生產(chǎn)總值.csv',encoding='gbk')data.set_index('地區(qū)',inplace=True)#將地名設置為索引值x=data['2020年']new_list=[]new=[]foreleminx:ifnotnp.isnan(elem):new_list.append(elem)6.5實戰(zhàn)1:我國地區(qū)產(chǎn)值數(shù)據(jù)可視化6.5.2任務實現(xiàn)3.我國各省市自2020年的生產(chǎn)總值占比分析foriinnew_list:i=int(i)new.append(i)#去除臺灣省NaN值plt.figure(figsize=(15,15))name=['北京市','天津市','河北省','山西省','內(nèi)蒙古自治區(qū)','遼寧省','吉林省','黑龍江省','上海市','江蘇省','浙江省','安徽省','福建省','江西省','山東省','河南省','湖北省','湖南省','廣東省','廣西壯族自治區(qū)','海南省','重慶市','四川省','貴州省','云南省','西藏自治區(qū)','陜西省','甘肅省','青海省','寧夏回族自治區(qū)','新疆維吾爾自治區(qū)']#因為臺灣省數(shù)據(jù)缺失,所以選擇刪除plt.pie(new,labels=name,autopct="%1.1f%%")plt.title("我國2020年各省市生產(chǎn)總值占比情況")plt.show()6.5實戰(zhàn)1:我國地區(qū)產(chǎn)值數(shù)據(jù)可視化6.5.2任務實現(xiàn)3.我國各省市自2020年的生產(chǎn)總值占比分析importnumpyasnpfrommatplotlibimportpyplotaspltimportpandasaspddata=pd.read_csv('各地區(qū)生產(chǎn)總值.csv',encoding='gbk')plt.rcParams['font.sans-serif']=['SimHei']data.set_index('地區(qū)',inplace=True)#將地名設置為索引值ax1=plt.figure(figsize=(15,10))name=['北京市','天津市','河北省','山西省','內(nèi)蒙古自治區(qū)','遼
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2019-2025年二級注冊建筑師之法律法規(guī)經(jīng)濟與施工題庫檢測試卷A卷附答案
- 鄉(xiāng)村庭院收購合同樣本
- 內(nèi)勤聘任合同樣本
- 如何與家人溝通財務問題計劃
- 公司車貸合同樣本
- 推廣綠色醫(yī)院建設的計劃
- 隧道涂裝鋼管架施工方案
- 產(chǎn)權(quán)車位定金合同標準文本
- 價格保護合同樣本
- 2025年鋼材購銷(訂貨)合同范文
- 【MOOC】宇宙簡史-南京大學 中國大學慕課MOOC答案
- 餐廳經(jīng)營管理方案 餐廳的經(jīng)營與管理計劃
- 公民基本權(quán)利課件
- 深度學習及自動駕駛應用 課件 第1、2章 汽車自動駕駛技術(shù)概述、深度學習基礎
- 糖尿病診治發(fā)展史
- 美團合作商騎手協(xié)議書范文模板
- 2024年湖北省高考化學試卷真題(含答案解析)
- 機器學習 課件 第7章 集成學習
- 視頻剪輯課件范文
- 健身房健身器材使用手冊
- 3.2有約必守 違約有責 課件-高中政治統(tǒng)編版選擇性必修二法律與生活
評論
0/150
提交評論