python用matplotlib可視化繪圖詳解_第1頁(yè)
python用matplotlib可視化繪圖詳解_第2頁(yè)
python用matplotlib可視化繪圖詳解_第3頁(yè)
python用matplotlib可視化繪圖詳解_第4頁(yè)
python用matplotlib可視化繪圖詳解_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第python用matplotlib可視化繪圖詳解目錄1、Matplotlib簡(jiǎn)介2、Matplotlib圖形繪制1)折線圖2)柱狀圖3)條形圖3)餅圖4)散點(diǎn)圖5)直方圖6)箱型圖7)子圖

1、Matplotlib簡(jiǎn)介

Matplotlib簡(jiǎn)介:

Matplotlib是一個(gè)python的2D繪圖庫(kù),它以各種硬拷貝格式和跨平臺(tái)的交互式環(huán)境生成出版質(zhì)量級(jí)別的圖形,matplotlib對(duì)于圖像美化方面比較完善,可以自定義線條的顏色和樣式,可以在一張繪圖紙上繪制多張小圖,也可以在一張圖上繪制多條線,可以很方便地將數(shù)據(jù)可視化并對(duì)比分析。同Excel繪制相關(guān)圖標(biāo)相比,使用Matplotlib繪制自由度更高,并且能解決excel無(wú)法繪制數(shù)據(jù)量較大、維度較多的圖表問題。

如何使用Matplotlib:

python環(huán)境下:

pipinstallmatplotlib

jupyternotebook中:

!pipinstallmatplotlib

(強(qiáng)烈建議安裝anaconda,一些常用的包就不用在單獨(dú)安裝了)安裝了anaconda了,直接導(dǎo)包就行

importmatplotlib.pyplotasplt#plt是別名

Matplotlib繪制圖形:

折線圖plot柱狀圖bar條形圖barh餅圖pie散點(diǎn)圖scatter直方圖hist箱形圖boxplot子圖subplot

2、Matplotlib圖形繪制

1)折線圖

折線圖(linechart)是一種將數(shù)據(jù)點(diǎn)按照順序連接起來的圖形,折線圖是排列在工作表的列或行中的數(shù)據(jù)可以繪制到折線圖中,折線圖可以顯示隨時(shí)間(根據(jù)常用比例設(shè)置)而變化的連續(xù)數(shù)據(jù),因此非常適用于顯示在相等時(shí)間間隔下數(shù)據(jù)的趨勢(shì)。

plt.figure(figsize=(10,6))#調(diào)整畫布大小

plt.plot(data["日期"],data["自配送銷售額"],color='y')#通過color調(diào)整顏色

plt.xticks(rotation=45)#x軸傾斜的角度

plt.show()

其中顏色可以設(shè)置成很多,下表為部分:

r紅色g綠色b藍(lán)色c青色m品紅y黃色k黑色w白色淺粉紅#FFB6C1猩紅#DC143C

最底下為rgb顏色值,可以查看RGB顏色值與十六進(jìn)制顏色碼轉(zhuǎn)換工具里邊比較詳細(xì)

plt.figure(figsize=(10,5))

plt.plot(data["日期"],data["總銷售額"],color='r',linewidth=0.5,marker="*",line)

plt.plot(data["日期"],data["FBA銷售額"],color='g',linewidth=0.5,marker="2",line)

plt.plot(data["日期"],data["自配送銷售額"],color='y',linewidth=0.5,marker="s",line)

plt.xticks(rotation=45)#旋轉(zhuǎn)x軸標(biāo)注

font={

"family":"kaiti",

#

設(shè)置字體的樣式

"size":"20"

#

設(shè)置字體的大小

plt.rc("font",**font)

#設(shè)置X軸標(biāo)簽

plt.xlabel("時(shí)間")

#設(shè)置y軸標(biāo)簽

plt.ylabel("數(shù)額")

plt.show()

#linewidth是設(shè)置線的寬度

#marker是設(shè)置線的拐點(diǎn)標(biāo)記樣式

常用字體名稱:

楷體kaiti黑體SimHei微軟雅黑MicrosoftYaHei新宋體NSimSun仿宋_GB2312FangSong_GB2312楷體_GB2312KaiTi_GB2312

常用線型:

實(shí)線-點(diǎn)虛線:破折線--點(diǎn)劃線-.不畫線或

用標(biāo)記:

點(diǎn).上三角^上三叉2正方形s星號(hào)*菱形D渲染指定的字符。例如$f$以字母f為標(biāo)記。$...$

2)柱狀圖

柱形圖,又稱長(zhǎng)條圖、柱狀統(tǒng)計(jì)圖(德文:Sulendiagramm、英文:barchart、西班牙文:diagramadebarras)亦稱條圖、條狀圖、棒形圖,是一種以長(zhǎng)方形的長(zhǎng)度為變量的統(tǒng)計(jì)圖表。長(zhǎng)條圖用來比較兩個(gè)或以上的價(jià)值(不同時(shí)間或者不同條件),只有一個(gè)變量,通常利用于較小的數(shù)據(jù)集分析。長(zhǎng)條圖亦可橫向排列,或用多維方式表達(dá)。

matplotlib.pyplot.bar(x,height,width=0.8,bottom=None,*,align='center',data=None,**kwargs)

參數(shù)說明:

x:浮點(diǎn)型數(shù)組,柱形圖的x軸數(shù)據(jù)。height:浮點(diǎn)型數(shù)組,柱形圖的高度。width:浮點(diǎn)型數(shù)組,柱形圖的寬度。bottom:浮點(diǎn)型數(shù)組,底座的y坐標(biāo),默認(rèn)0。align:柱形圖與x坐標(biāo)的對(duì)齊方式,center以x位置為中心,這是默認(rèn)值。edge:將柱形圖的左邊緣與x位置對(duì)齊。要對(duì)齊右邊緣的條形,可以傳遞負(fù)數(shù)的寬度值及align=edge。

**kwargs::其他參數(shù)。

plt.figure(figsize=(10,5))

plt.bar(data["排序"],data["銷量"])

##調(diào)整畫布外框顏色上:top下:bottom左:left右:right

ax=plt.gca()

ax.spines["top"].set_color("w")

ax.spines["bottom"].set_color("r")

ax.spines["left"].set_color("r")

ax.spines["right"].set_color("w")

##調(diào)整x、y軸刻度

plt.xlim(data.index.values[0],data.index.values[-1])#x軸從0開始到最后一個(gè)0第一個(gè)-1最后一個(gè)

plt.ylim(np.min(data["銷量"]),np.max(data["銷量"]))

#最小到最大

plt.show()

3)條形圖

條形圖(barchart)是用寬度相同的條形的高度或長(zhǎng)短來表示數(shù)據(jù)多少的圖形。條形圖可以橫置或縱置,縱置時(shí)也稱為柱形圖(columnchart)。此外,條形圖有簡(jiǎn)單條形圖、復(fù)式條形圖等形式。

plt.figure(figsize=(10,5))

plt.barh(data["排序"],data["銷量"])

##調(diào)整畫布外框顏色上:top下:bottom左:left右:right

ax=plt.gca()

ax.spines["top"].set_color("w")

ax.spines["bottom"].set_color("r")

ax.spines["left"].set_color("r")

ax.spines["right"].set_color("w")

##調(diào)整x、y軸刻度

plt.xlim(np.min(data["銷量"]),np.max(data["銷量"]))

#x軸從0開始到最后一個(gè)0第一個(gè)-1最后一個(gè)

plt.ylim(data.index.values[0],data.index.values[-1])#最小到最大

plt.show()

條形圖就是把柱狀圖放倒,調(diào)整X、Y軸即可

3)餅圖

matplotlib.pyplot.pie(x,explode=None,labels=None,colors=None,autopct=None,pctdistance=0.6,shadow=False,labeldistance=1.1,startangle=0,radius=1,counterclock=True,wedgeprops=None,textprops=None,center=0,0,frame=False,rotatelabels=False,*,normalize=None,data=None)[source]

參數(shù)說明:

x:浮點(diǎn)型數(shù)組,表示每個(gè)扇形的面積。

explode:數(shù)組,表示各個(gè)扇形之間的間隔,默認(rèn)值為0。

labels:列表,各個(gè)扇形的標(biāo)簽,默認(rèn)值為None。

colors:數(shù)組,表示各個(gè)扇形的顏色,默認(rèn)值為None。

autopct:設(shè)置餅圖內(nèi)各個(gè)扇形百分比顯示格式,%d%%整數(shù)百分比,%0.1f一位小數(shù),%0.1f%%一位小數(shù)百分比,%0.2f%%兩位小數(shù)百分比。

labeldistance:標(biāo)簽標(biāo)記的繪制位置,相對(duì)于半徑的比例,默認(rèn)值為1.1,如1則繪制在餅圖內(nèi)側(cè)。

pctdistance::類似于labeldistance,指定autopct的位置刻度,默認(rèn)值為0.6。

shadow::布爾值True或False,設(shè)置餅圖的陰影,默認(rèn)為False,不設(shè)置陰影。

radius::設(shè)置餅圖的半徑,默認(rèn)為1。

startangle::起始繪制餅圖的角度,默認(rèn)為從x軸正方向逆時(shí)針畫起,如設(shè)定=90則從y軸正方向畫起。

counterclock:布爾值,設(shè)置指針方向,默認(rèn)為True,即逆時(shí)針,F(xiàn)alse為順時(shí)針。

wedgeprops:字典類型,默認(rèn)值None。參數(shù)字典傳遞給wedge對(duì)象用來畫一個(gè)餅圖。例如:wedgeprops={linewidth:5}設(shè)置wedge線寬為5。

textprops:字典類型,默認(rèn)值為:None。傳遞給text對(duì)象的字典參數(shù),用于設(shè)置標(biāo)簽(labels)和比例文字的格式。

center:浮點(diǎn)類型的列表,默認(rèn)值:(0,0)。用于設(shè)置圖標(biāo)中心位置。

frame:布爾類型,默認(rèn)值:False。如果是True,繪制帶有表的軸框架。

rotatelabels:布爾類型,默認(rèn)為False。如果為True,旋轉(zhuǎn)每個(gè)label到指定的角度。

plt.figure(figsize=(10,5))

sum_sale=np.sum(data["總銷售額"])

font={

"family":"kaiti"

,"size":"15"

plt.rc("font",**font)

fba_sale=np.sum(data["FBA銷售額"])

self_sale=np.sum(data["自配送銷售額"])

plt.pie([sum_sale,fba_sale,self_sale]

,labels=["總銷售額","FBA銷售額","自配送銷售額"]

,colors=["m","b","g"]#設(shè)置餅圖顏色

,shadow=True

#是否設(shè)置陰影

,labeldistance=1.2

#標(biāo)簽距圖表的距離

,autopct="%.2f%%"

##設(shè)置顯示數(shù)字樣式

,startangle=60

##旋轉(zhuǎn)角度

,explode=[0.1,0,0]

)

plt.title("統(tǒng)計(jì)",loc="center")#center中間

plt.show()

4)散點(diǎn)圖

散點(diǎn)圖是指在回歸分析中,數(shù)據(jù)點(diǎn)在直角坐標(biāo)系平面上的分布圖,散點(diǎn)圖表示因變量隨自變量而變化的大致趨勢(shì),據(jù)此可以選擇合適的函數(shù)對(duì)數(shù)據(jù)點(diǎn)進(jìn)行擬合。用兩組數(shù)據(jù)構(gòu)成多個(gè)坐標(biāo)點(diǎn),考察坐標(biāo)點(diǎn)的分布,判斷兩變量之間是否存在某種關(guān)聯(lián)或總結(jié)坐標(biāo)點(diǎn)的分布模式。散點(diǎn)圖將序列顯示為一組點(diǎn)。值由點(diǎn)在圖表中的位置表示。類別由圖表中的不同標(biāo)記表示。散點(diǎn)圖通常用于比較跨類別的聚合數(shù)據(jù)。

matplotlib.pyplot.scatter(x,y,s=None,c=None,marker=None,cmap=None,norm=None,vmin=None,vmax=None,alpha=None,linewidths=None,*,edgecolors=None,plotnonfinite=False,data=None,**kwargs)

參數(shù)說明:

x,y:長(zhǎng)度相同的數(shù)組,也就是我們即將繪制散點(diǎn)圖的數(shù)據(jù)點(diǎn),輸入數(shù)據(jù)。

s:點(diǎn)的大小,默認(rèn)20,也可以是個(gè)數(shù)組,數(shù)組每個(gè)參數(shù)為對(duì)應(yīng)點(diǎn)的大小。

c:點(diǎn)的顏色,默認(rèn)藍(lán)色b,也可以是個(gè)RGB或RGBA二維行數(shù)組。

marker:點(diǎn)的樣式,默認(rèn)小圓圈o。

cmap:Colormap,默認(rèn)None,標(biāo)量或者是一個(gè)colormap的名字,只有c是一個(gè)浮點(diǎn)數(shù)數(shù)組的時(shí)才使用。如果沒有申明就是image.cmap。

norm:Normalize,默認(rèn)None,數(shù)據(jù)亮度在0-1之間,只有c是一個(gè)浮點(diǎn)數(shù)的數(shù)組的時(shí)才使用。

vmin,vmax::亮度設(shè)置,在norm參數(shù)存在時(shí)會(huì)忽略。

alpha::透明度設(shè)置,0-1之間,默認(rèn)None,即不透明。

linewidths::標(biāo)記點(diǎn)的長(zhǎng)度。

edgecolors::顏色或顏色序列,默認(rèn)為face,可選值有face,none,None。

plotnonfinite::布爾值,設(shè)置是否使用非限定的c(inf,-inf或nan)繪制點(diǎn)。

**kwargs::其他參數(shù)。

plt.scatter(data["平均單個(gè)訂單成本"],data["訂單額"]

,color=("red","green","black","orange","purple","beige","cyan","magenta","cyan","magenta")#設(shè)置球的顏色

,s=data["訂單額"]#設(shè)置球的大小

,marker="h"#設(shè)置球的形狀

,linewidths=4#設(shè)置球邊界的寬度

,edgecolors='b'#設(shè)置邊界的顏色

,alpha=0.5#設(shè)置透明度

)#設(shè)置球的形狀

plt.xlabel("訂單成本")

plt.ylabel("訂單額")

plt.show()

5)直方圖

直方圖(Histogram),又稱質(zhì)量分布圖,是一種統(tǒng)計(jì)報(bào)告圖,由一系列高度不等的縱向條紋或線段表示數(shù)據(jù)分布的情況。一般用橫軸表示數(shù)據(jù)類型,縱軸表示分布情況。

plt.figure(figsize=(20,5))

data1=data[data["數(shù)量"]20]

plt.hist(data1["數(shù)量"],

bins=data1.index.values[-1]#xz軸上展示多少

,align="mid"

,density=True#頻率頻數(shù)設(shè)置

)

plt.xlim(10)

plt.show()

6)箱型圖

箱形圖(Box-plot)又稱為盒須圖、盒式圖或箱線圖,是一種用作顯示一組數(shù)據(jù)分散情況資料的統(tǒng)計(jì)圖。因形狀如箱子而得名。在各種領(lǐng)域也經(jīng)常被使用,常見于品質(zhì)管理。它主要用于反映原始數(shù)據(jù)分布的特征,還可以進(jìn)行多組數(shù)據(jù)分布特征的比較。箱線圖的繪制方法是:先找出一組數(shù)據(jù)的上邊緣、下邊緣、中位數(shù)和兩個(gè)四分位數(shù);然后,連接兩個(gè)四分位數(shù)畫出箱體;再將上邊緣和下邊緣與箱體相連接,中位數(shù)在箱體中間。

plt.boxplot(data[data["銷量"]3000]["銷量"])

plt.show()

橫線上邊的可以看做是異常值,也叫離群點(diǎn),橫線是上限值,依次往下是上4分位、中位數(shù)、下4分位數(shù)、下限

-上4分位數(shù)的意思是全部數(shù)據(jù)中有4分之一的數(shù)據(jù)比它大

-下4分位數(shù)的意思是全部數(shù)據(jù)中有4分之一的數(shù)據(jù)比它小

-中位數(shù)的意思就是位于中間的數(shù)據(jù)

-上4分位減去下4分位數(shù)代表著4分位的間距,那么異常值(離群點(diǎn))就是大于(上四分位+1.5*四分位間距)或小于(下4分位-1.5*四分位間距)的數(shù)字

-上限值就是等于(上4分位+1.5*四分位間距)的值

多個(gè)箱型圖繪制

dataa=[data[data["銷量"]2000]["銷量"],data[data["銷量"]3000]["銷量"]]

plt.boxplot(dataa

#dataa中包含多少元素就會(huì)繪制幾個(gè)箱型圖

,notch=True

#是否展示凹口

,sym="*"#設(shè)置異形點(diǎn)的形狀

,vert=False#箱型圖的擺放方式,True就是垂直,F(xiàn)alse就是橫著

,whis=2

#定義異常,默認(rèn)是1.5這個(gè)參數(shù)也就是上下四分位距離的倍數(shù)

,labels=["箱型圖a","箱型圖b"]#說明

,showmeans=True

#展示平均值

,meanline=True

#以線的形式來展示平均值,前提是showmeans=True

,showfliers=True

#是否顯示異常值

,meanprops=dict(markerfacecolor="r",marker="s")

,widths=0.5

)

plt.show()

7)子圖

我們可以使用pyplot中的subplot()和subplots()方法來繪制多個(gè)子圖。

subplot()方法在繪圖時(shí)需要指定位置,subplots()方法可以一次生成多個(gè),在調(diào)用時(shí)只需要調(diào)用生成對(duì)象的ax

subplots()方法語(yǔ)法格式如下:

matplotlib.pyplot.subplots(nrows=1,ncols=1,*,sharex=False,sharey=False,squeeze=True,subplot_kw=None,gridspec_kw=None,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論