Python數(shù)據(jù)分析之matplotlib繪圖詳解
多子圖
figure是繪制對象(可以理解為一個空白的畫布),一個figure對象可以包含多個Axes子圖,一個Axes是一個繪圖區(qū)域,不加設(shè)置時,Axes為1,且每次繪圖其實都是在figure上的Axes上繪圖。
我們是在圖形對象上面的Axes區(qū)域進(jìn)行作畫
1.add_axes():添加區(qū)域
2.Matplotlib定義一個axes類,該類的對象稱為axes對象(即軸域?qū)ο螅?,它指定一個有數(shù)值范圍限制的繪圖區(qū)域。再給定一個畫布中,可以包含多個axes對象,但是同一個axes對象只能在一個畫布中使用。
2D 繪制區(qū)域(axes)包含兩個軸(axis)對象
語法:
add_axes(rect)
該方法用來生成一個axes軸域?qū)ο?,對象的位置參?shù)由參數(shù)rect決定。
rect是位置參數(shù),接受一個由4個元素組成的浮點數(shù)列表,形如[left,bottom,width,height],它表示添加到畫布中的矩形區(qū)域左下標(biāo)(x,y),以及寬度和高度
fig=plt.figure(figsize=(4,2),facecolor='g') #ax1從畫布起始位置繪制,寬高和畫布一致 ax1=fig.add_axes([0,0,1,1]) #ax2從畫布20%的位置開始繪制,寬高是畫布的50% ax2=fig.add_axes([0.2,0.2,0.5,0.5]) ax3=fig.add_axes([0.0,0.5,0.5,0.5]) ax3.plot([1,2,3,4,6],[2,3,5,8,9]) ax1.plot([1,2,3,4,6],[2,3,5,8,9]) ax2.plot([1,2,3,4,6],[2,3,5,8,9])
注意:每個元素的值是畫布寬度和高度的分?jǐn)?shù)。即將畫布的寬、高作為一個單位。比如,[0.2,0.2,0.5,0.5],它代表從畫布20%的位置開始繪制,寬度是畫布的50%
fig=plt.figure() #創(chuàng)建區(qū)域1 ax1=fig.add_axes([0,0,1,1]) #區(qū)域1作畫 plt.plot([1,2,3,4,6],[2,3,5,8,9]) #創(chuàng)建區(qū)域2 ax2=fig.add_axes([0.2,0.2,0.5,0.5]) #區(qū)域2作畫 plt.plot([1,2,3,4,6],[2,3,5,8,9])
subplot():均等地劃分畫布,只是創(chuàng)建一個包含子圖區(qū)域的畫布(返回區(qū)域?qū)ο螅?br />subplots():既創(chuàng)建一個包含子圖區(qū)域的畫布,又創(chuàng)建了一個figure的圖形對象(返回圖形對象和區(qū)域?qū)ο?
散點圖
matplotlib.pyplot.scatter(s,y,s=None,marker=None,camp=None,norm=None,vmin=None,vmax=None,aipha=None,linewidths=None,edgecolors=None,plotnonfinite=False,data=None,*kwargs)
- x,y散點坐標(biāo)
- s散點面積
- c散點顏色(默認(rèn)為藍(lán)色,‘b’,其余顏色同plt.plot())
- marker散點樣式(默認(rèn)為實心圓)
- alpha散點透明度([0,1]之間的數(shù),0表示完全透明,1表示完全不透明)
- linewidths散點的邊緣線寬
- edgecolors散點的邊緣顏色
- camp(Colormap,默認(rèn)None,標(biāo)量是一個colormap的名字,只有c是一個浮點數(shù)組時才使用)
#x軸數(shù)據(jù) x=np.array([1,2,3,4,5,6,7,8]) #y軸數(shù)據(jù) y=np.array([]1,4,9,16,7,11,23,18) #生成一個[0,1)之間的隨機(jī)浮點數(shù)或N維浮點數(shù)組 print((20*np.random.rand(8)**2) a=(20*np.random.rand(8))**2 plt.scatter(x,y,s) plt.show()
自定義點的顏色和透明度
x=np.random.rand(50) #rand()生成一個[0,1)之間的隨機(jī)浮點數(shù)或 N維浮點數(shù)組 #y軸數(shù)據(jù) y=np.random.rand(50) #生成一個浮點數(shù)組,取值范圍,正態(tài)分布的隨機(jī)樣本數(shù) s=(10*np.random.randn(50))**2 #顏色可以使用一組數(shù)字序列 #如只需要3中顏色 #color=np.resize(np.array([1,2,3]),100) #顏色隨機(jī) color=np.random.rand(50) plt.scatter(x,y,s,c=color.alpha=0.5 )
水平柱狀圖
#引入Matplotlib from matplotlib import pyplot as plt import numpy as np #設(shè)置中文字體 plt.rcParams['font.sans-serif']=['SimHei'] #中文負(fù)號 plt.rcParams['axes.unicode_minus']=False #設(shè)置分辨率100 plt.rcParams['figure.dpi']=100 #設(shè)置大小 plt.rcParams['figure.figsize']=(5,3)
調(diào)用Matplptlib的barh()函數(shù)可以生成水平柱狀圖
barh()函數(shù)的用法與bar()函數(shù)的用法基本一樣,只是在調(diào)用barh()函數(shù)使用y參數(shù)傳入Y軸數(shù)據(jù),使用width參數(shù)傳入代表條柱 寬度的數(shù)據(jù)。
plt.barh(y,width,height=0.8,left=None,*,align=‘center’,**kwargs)
countries=['挪威','德國','中國','美國','瑞典'] #金牌個數(shù) gold_medal=np.array([16,12,9,8,8]) #y軸為國家,寬度為獎牌個數(shù) plt.barh(countries,width=gold_medal)
同位置柱狀圖
#國家 countries=['挪威','德國','中國','美國','瑞典'] #金牌個數(shù) gold_metal=[16,12,9,8,8] #銀牌個數(shù) silver_medal=[8,10,4,10,5] #銅牌個數(shù) bronze_metal=[13,5,2,7,5] #1.將x軸轉(zhuǎn)換為數(shù)值x=np.arange(len(countries)) print(x) #2.設(shè)置圖像寬度 width=0.2 #=======確定x起始位置===== #金牌起始位置 gold_x=x #銀牌起始位置 sliver_x=x+width #銅牌起始位置 bronze_x=x+2*width #==============分別繪制圖形 #金牌圖形 plt.bar(gold_x,gold_medal,width=width,color='gold') #銀牌圖形 plt.bar(silver_x,silver_medal,width=width,color='silver') #銅牌圖形 plt.bar(bronze_x,bronze_medal,width=width,color='saddlebrown') #=====將x軸的坐標(biāo)變回來 #注意x標(biāo)簽的位置居中 plt.xticks(x+width,labels=countries) #------顯示高度文本------- for i in range(len(countries)): #金牌文本設(shè)置 plt.text(gold_x[i],gold_medal[i],va="bottom",ha="center") plt.text(silver_x[i],silver_medal[i],va="bottom",ha="center") plt.text(bronze_x[i],bronze_medal[i],va="bottom",ha="center")
到此這篇關(guān)于Python數(shù)據(jù)分析之matplotlib繪圖詳解的文章就介紹到這了,更多相關(guān)Python matplotlib繪圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python圖像處理庫PIL的ImageEnhance模塊使用介紹
這篇文章主要介紹了Python圖像處理庫PIL的ImageEnhance模塊使用介紹,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02python實現(xiàn)學(xué)生管理系統(tǒng)開發(fā)
這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)學(xué)生管理系統(tǒng)開發(fā),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-07-07Python PyTorch實現(xiàn)Timer計時器
這篇文章主要為大家詳細(xì)介紹了Python PyTorch如何實現(xiàn)簡單的Timer計時器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-08-08Python和Matlab實現(xiàn)蝙蝠算法的示例代碼
蝙蝠算法是一種搜索全局最優(yōu)解的有效方法,本文主要介紹了Python和Matlab實現(xiàn)蝙蝠算法的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03python實現(xiàn)QQ定時發(fā)送新年祝福信息
大家好,本篇文章主要講的是python實現(xiàn)QQ定時發(fā)送新年祝福信息,感興趣的同學(xué)感快來看一看吧,對你有幫助的話記得收藏一下2022-02-02