誰(shuí)說(shuō)matplotlib做不出好看的可視化
??????關(guān)注我,和老表一起學(xué)Python、云服務(wù)器
大家好,我是老表,今天給大家分享一篇由哈佛在等我呢投稿,主要是對(duì)matplotlib繪制柱狀圖和餅圖的美化,看完你會(huì)發(fā)現(xiàn),matplotlib雖然不能像pyecharts、bokeh等繪制出很精美的圖,甚至是可交互的可視化圖,但是通過(guò)配色、基礎(chǔ)設(shè)置,我們也能用matplotlib繪制出好看、簡(jiǎn)單的可視化圖。
收藏+點(diǎn)贊,轉(zhuǎn)發(fā)更有愛(ài),元旦快樂(lè)。
首先需要你的電腦安裝好了Python環(huán)境,并且安裝好了Python開(kāi)發(fā)工具。
如果你還沒(méi)有安裝,可以參考以下文章:
如果僅用Python來(lái)處理數(shù)據(jù)、爬蟲(chóng)、數(shù)據(jù)分析或者自動(dòng)化腳本、機(jī)器學(xué)習(xí)等,建議使用Python基礎(chǔ)環(huán)境+jupyter即可,安裝使用參考Windows/Mac 安裝、使用Python環(huán)境+jupyter notebook
如果想利用Python進(jìn)行web項(xiàng)目開(kāi)發(fā)等,建議使用Python基礎(chǔ)環(huán)境+Pycharm,安裝使用參考:Windows下安裝、使用Pycharm教程,這下全了?和?Mac下玩轉(zhuǎn)Python-安裝&使用Python/PyCharm?。
本文相關(guān)源碼和字體,我都已經(jīng)上傳到了百度云,大家在微信公眾號(hào)簡(jiǎn)說(shuō)編程回復(fù):代碼,即可獲取下載地址。
點(diǎn)擊,關(guān)注簡(jiǎn)說(shuō)編程,回復(fù):代碼
縱向柱形圖(按升序排列)
縱向柱形圖(類(lèi)別與數(shù)據(jù)標(biāo)簽反轉(zhuǎn),按降序排列)
縱向柱形圖(類(lèi)別與數(shù)據(jù)標(biāo)簽反轉(zhuǎn),按降序排列,顏色編碼也反轉(zhuǎn))
給縱向柱形圖添加網(wǎng)格線
橫向柱形圖
默認(rèn)生成的餅圖
自定義配色的餅圖
調(diào)整角度的餅圖
調(diào)整角度讓標(biāo)簽可以在內(nèi)部不重疊顯示的餅圖
炸裂出來(lái)的餅圖
縱向柱形圖(按升序排列)
#?解決部分?jupyter?notebook?中出圖不成功
%matplotlib?inline
#?導(dǎo)入相關(guān)庫(kù)
import?numpy?as?np
import?matplotlib.pyplot?as?plt
#?解決中文亂碼
plt.rcParams['font.sans-serif']?=?['SimHei']
#?顯示負(fù)號(hào)
plt.rcParams['axes.unicode_minus']?=?False
#?字體
TNR?=?{'fontname':'Times?New?Roman'}
Fs?=?{'fontname':'Fangsong'}
#?設(shè)置畫(huà)布大小
plt.figure(figsize=(12,6))
figure,axes?=?plt.subplots(1,1,figsize?=?(12,6),dpi?=?1000)
data?=?[100,?130,?169,?220,?286,?372,?484,?629,?818,?1063,?1382,?1797]
labels?=?["1月",?"2月",?"3月",?"4月",?"5月",?"6月",?"7月",?"8月",?"9月",?"10月",?"11月",?"12月"]
#?數(shù)據(jù)順序反轉(zhuǎn)
#?data.reverse()
#?標(biāo)簽順序反轉(zhuǎn)
#?labels.reverse()
N?=?12
x?=?np.arange(N)
#?自定義每根柱子的顏色
colors?=?["#4E79A7",??"#A0CBE8",??"#F28E2B",??"#FFBE7D",??"#59A14F",??"#8CD17D",??"#B6992D",??"#F1CE63",??"#499894",??"#86BCB6",??"#E15759",??"#E19D9A"]
#?顏色順序反轉(zhuǎn)
#?colors.reverse()
#?繪制縱向柱形圖
plt.bar(range(len(data)),?data,?tick_label=labels,color?=?colors)
#?plt.barh(range(len(data)),?data,?tick_label=labels,color?=?colors)
#?添加大標(biāo)題
plt.title("2021年各月份銷(xiāo)售業(yè)績(jī)(萬(wàn)元)",fontsize=20,**Fs)?
#?給X軸定義標(biāo)簽
#?plt.xlabel("月份",fontsize=15)
#?給Y軸定義標(biāo)簽
#?plt.ylabel("銷(xiāo)售額(萬(wàn)元)",fontsize=15)
#?依次給每根柱子添加數(shù)據(jù)標(biāo)簽,并把字體設(shè)置為新羅馬體(教科書(shū)、論文的數(shù)字、公式一般都用新羅馬體)
for?i,j?in?zip(x,?data):
????plt.text(i,?j+0.05,?'%.0f'?%?j,?ha='center',?va=?'bottom',fontsize=15,**TNR)
#?為了美觀,不顯示畫(huà)布的黑色邊框
[axes.spines[loc_axis].set_visible(False)?for?loc_axis?in?['top','right','bottom','left']]
#?不顯示Y軸坐標(biāo)
axes.set_yticks([])
#?輸出為矢量圖,不管放大或縮小,圖形皆不會(huì)失真
plt.savefig(r"C:\Users\Administrator\Desktop\test.svg",?format="svg")
#?輸出為常規(guī)的png格式
plt.savefig(r"C:\Users\Administrator\Desktop\test.png",?format="png")
#?輸出為常規(guī)的jpg格式
plt.savefig(r"C:\Users\Administrator\Desktop\test.jpg",?format="png")
#?繪圖
plt.show()

縱向柱形圖(類(lèi)別與數(shù)據(jù)標(biāo)簽反轉(zhuǎn),按降序排列)
#?解決部分?jupyter?notebook?中出圖不成功
%matplotlib?inline
#?導(dǎo)入相關(guān)庫(kù)
import?numpy?as?np
import?matplotlib.pyplot?as?plt
#?解決中文亂碼
plt.rcParams['font.sans-serif']?=?['SimHei']
#?顯示負(fù)號(hào)
plt.rcParams['axes.unicode_minus']?=?False
#?字體
TNR?=?{'fontname':'Times?New?Roman'}
Fs?=?{'fontname':'Fangsong'}
#?設(shè)置畫(huà)布大小
plt.figure(figsize=(12,6))
figure,axes?=?plt.subplots(1,1,figsize?=?(12,6),dpi?=?1000)
data?=?[100,?130,?169,?220,?286,?372,?484,?629,?818,?1063,?1382,?1797]
labels?=?["1月",?"2月",?"3月",?"4月",?"5月",?"6月",?"7月",?"8月",?"9月",?"10月",?"11月",?"12月"]
#?數(shù)據(jù)順序反轉(zhuǎn)
data.reverse()
#?標(biāo)簽順序反轉(zhuǎn)
labels.reverse()
N?=?12
x?=?np.arange(N)
#?自定義每根柱子的顏色
colors?=?["#4E79A7",??"#A0CBE8",??"#F28E2B",??"#FFBE7D",??"#59A14F",??"#8CD17D",??"#B6992D",??"#F1CE63",??"#499894",??"#86BCB6",??"#E15759",??"#E19D9A"]
#?顏色順序反轉(zhuǎn)
#?colors.reverse()
#?繪制縱向柱形圖
plt.bar(range(len(data)),?data,?tick_label=labels,color?=?colors)
#?plt.barh(range(len(data)),?data,?tick_label=labels,color?=?colors)
#?添加大標(biāo)題
plt.title("2021年各月份銷(xiāo)售業(yè)績(jī)(萬(wàn)元)",fontsize=20,**Fs)?
#?給X軸定義標(biāo)簽
#?plt.xlabel("月份",fontsize=15)
#?給Y軸定義標(biāo)簽
#?plt.ylabel("銷(xiāo)售額(萬(wàn)元)",fontsize=15)
#?依次給每根柱子添加數(shù)據(jù)標(biāo)簽,并把字體設(shè)置為新羅馬體(教科書(shū)、論文的數(shù)字、公式一般都用新羅馬體)
for?i,j?in?zip(x,?data):
????plt.text(i,?j+0.05,?'%.0f'?%?j,?ha='center',?va=?'bottom',fontsize=15,**TNR)
#?為了美觀,不顯示畫(huà)布的黑色邊框
[axes.spines[loc_axis].set_visible(False)?for?loc_axis?in?['top','right','bottom','left']]
#?不顯示Y軸坐標(biāo)
axes.set_yticks([])
#?輸出為矢量圖,不管放大或縮小,圖形皆不會(huì)失真
plt.savefig(r"C:\Users\Administrator\Desktop\test.svg",?format="svg")
#?輸出為常規(guī)的png格式
plt.savefig(r"C:\Users\Administrator\Desktop\test.png",?format="png")
#?輸出為常規(guī)的jpg格式
plt.savefig(r"C:\Users\Administrator\Desktop\test.jpg",?format="png")
#?繪圖
plt.show()

縱向柱形圖(類(lèi)別與數(shù)據(jù)標(biāo)簽反轉(zhuǎn),按降序排列,顏色編碼也反轉(zhuǎn))
#?解決部分?jupyter?notebook?中出圖不成功
%matplotlib?inline
#?導(dǎo)入相關(guān)庫(kù)
import?numpy?as?np
import?matplotlib.pyplot?as?plt
#?解決中文亂碼
plt.rcParams['font.sans-serif']?=?['SimHei']
#?顯示負(fù)號(hào)
plt.rcParams['axes.unicode_minus']?=?False
#?字體
TNR?=?{'fontname':'Times?New?Roman'}
Fs?=?{'fontname':'Fangsong'}
#?設(shè)置畫(huà)布大小
plt.figure(figsize=(12,6))
figure,axes?=?plt.subplots(1,1,figsize?=?(12,6),dpi?=?1000)
data?=?[100,?130,?169,?220,?286,?372,?484,?629,?818,?1063,?1382,?1797]
labels?=?["1月",?"2月",?"3月",?"4月",?"5月",?"6月",?"7月",?"8月",?"9月",?"10月",?"11月",?"12月"]
#?數(shù)據(jù)順序反轉(zhuǎn)
data.reverse()
#?標(biāo)簽順序反轉(zhuǎn)
labels.reverse()
N?=?12
x?=?np.arange(N)
#?自定義每根柱子的顏色
colors?=?["#4E79A7",??"#A0CBE8",??"#F28E2B",??"#FFBE7D",??"#59A14F",??"#8CD17D",??"#B6992D",??"#F1CE63",??"#499894",??"#86BCB6",??"#E15759",??"#E19D9A"]
#?顏色順序反轉(zhuǎn)
colors.reverse()
#?繪制縱向柱形圖
plt.bar(range(len(data)),?data,?tick_label=labels,color?=?colors)
#?plt.barh(range(len(data)),?data,?tick_label=labels,color?=?colors)
#?添加大標(biāo)題
plt.title("2021年各月份銷(xiāo)售業(yè)績(jī)(萬(wàn)元)",fontsize=20,**Fs)?
#?給X軸定義標(biāo)簽
#?plt.xlabel("月份",fontsize=15)
#?給Y軸定義標(biāo)簽
#?plt.ylabel("銷(xiāo)售額(萬(wàn)元)",fontsize=15)
#?依次給每根柱子添加數(shù)據(jù)標(biāo)簽,并把字體設(shè)置為新羅馬體(教科書(shū)、論文的數(shù)字、公式一般都用新羅馬體)
for?i,j?in?zip(x,?data):
????plt.text(i,?j+0.05,?'%.0f'?%?j,?ha='center',?va=?'bottom',fontsize=15,**TNR)
#?為了美觀,不顯示畫(huà)布的黑色邊框
[axes.spines[loc_axis].set_visible(False)?for?loc_axis?in?['top','right','bottom','left']]
#?不顯示Y軸坐標(biāo)
axes.set_yticks([])
#?輸出為矢量圖,不管放大或縮小,圖形皆不會(huì)失真
plt.savefig(r"C:\Users\Administrator\Desktop\test.svg",?format="svg")
#?輸出為常規(guī)的png格式
plt.savefig(r"C:\Users\Administrator\Desktop\test.png",?format="png")
#?輸出為常規(guī)的jpg格式
plt.savefig(r"C:\Users\Administrator\Desktop\test.jpg",?format="png")
#?繪圖
plt.show()

給縱向柱形圖添加網(wǎng)格線
#?解決部分?jupyter?notebook?中出圖不成功
%matplotlib?inline
#?導(dǎo)入相關(guān)庫(kù)
import?numpy?as?np
import?matplotlib.pyplot?as?plt
#?解決中文亂碼
plt.rcParams['font.sans-serif']?=?['SimHei']
#?顯示負(fù)號(hào)
plt.rcParams['axes.unicode_minus']?=?False
#?字體
TNR?=?{'fontname':'Times?New?Roman'}
Fs?=?{'fontname':'Fangsong'}
#?設(shè)置畫(huà)布大小
plt.figure(figsize=(12,6))
figure,axes?=?plt.subplots(1,1,figsize?=?(12,6),dpi?=?1000)
data?=?[100,?130,?169,?220,?286,?372,?484,?629,?818,?1063,?1382,?1797]
labels?=?["1月",?"2月",?"3月",?"4月",?"5月",?"6月",?"7月",?"8月",?"9月",?"10月",?"11月",?"12月"]
#?數(shù)據(jù)順序反轉(zhuǎn)
#?data.reverse()
#?標(biāo)簽順序反轉(zhuǎn)
#?labels.reverse()
N?=?12
x?=?np.arange(N)
#?自定義每根柱子的顏色
colors?=?["#4E79A7",??"#A0CBE8",??"#F28E2B",??"#FFBE7D",??"#59A14F",??"#8CD17D",??"#B6992D",??"#F1CE63",??"#499894",??"#86BCB6",??"#E15759",??"#E19D9A"]
#?顏色順序反轉(zhuǎn)
#?colors.reverse()
#?繪制縱向柱形圖
plt.bar(range(len(data)),?data,?tick_label=labels,color?=?colors)
#?plt.barh(range(len(data)),?data,?tick_label=labels,color?=?colors)
#?添加大標(biāo)題
plt.title("2021年各月份銷(xiāo)售業(yè)績(jī)(萬(wàn)元)",fontsize=20,**Fs)?
#?給X軸定義標(biāo)簽
#?plt.xlabel("月份",fontsize=15)
#?給Y軸定義標(biāo)簽
#?plt.ylabel("銷(xiāo)售額(萬(wàn)元)",fontsize=15)
#?依次給每根柱子添加數(shù)據(jù)標(biāo)簽,并把字體設(shè)置為新羅馬體(教科書(shū)、論文的數(shù)字、公式一般都用新羅馬體)
for?i,j?in?zip(x,?data):
????plt.text(i,?j+0.05,?'%.0f'?%?j,?ha='center',?va=?'bottom',fontsize=15,**TNR)
#?為了美觀,不顯示畫(huà)布的黑色邊框
[axes.spines[loc_axis].set_visible(False)?for?loc_axis?in?["top","bottom","left","right"]]
#?不顯示Y軸坐標(biāo)
axes.set_yticks([])
#?輸出為矢量圖,不管放大或縮小,圖形皆不會(huì)失真
plt.savefig(r"C:\Users\Administrator\Desktop\test.svg",?format?=?"svg")
#?輸出為常規(guī)的png格式
plt.savefig(r"C:\Users\Administrator\Desktop\test.png",?format?=?"png")
#?輸出為常規(guī)的jpg格式
plt.savefig(r"C:\Users\Administrator\Desktop\test.jpg",?format?=?"png")
#?添加網(wǎng)格
plt.grid(axis?=?"y")
#?自定義網(wǎng)格線形狀
plt.grid(c?=?"gold")
#?定義網(wǎng)格線的線型和線寬,jupyter?notebook?有提示
#?'-',?'--',?'-.',?':',?'None',?'?',?'',?'solid',?'dashed',?'dashdot',?'dotted'
plt.grid(linestyle?=?"dotted",?linewidth?=?0.5)
#?繪圖
plt.show()

橫向柱形圖
#?導(dǎo)入相關(guān)的包
import?numpy?as?np
import?matplotlib.pyplot?as?plt
#?解決中文亂碼
plt.rcParams['font.sans-serif']?=?['SimHei']
#?顯示負(fù)號(hào)
plt.rcParams['axes.unicode_minus']?=?False
#?字體
TNR?=?{'fontname':'Times?New?Roman'}
HP?=?{'fontname':'STHUPO'}
#?自定義每根柱子的顏色
colors?=?["#4E79A7",??"#A0CBE8",??"#F28E2B",??"#FFBE7D",??"#59A14F",??"#8CD17D",??"#B6992D",??"#F1CE63",??"#499894",??"#86BCB6",??"#E15759",??"#E19D9A"]
#?設(shè)置畫(huà)布大小
figure,axes?=?plt.subplots(1,1,figsize?=?(12,10),dpi?=?80)
data_h?=?[100,?130,?169,?220,?286,?372,?484,?629,?818,?1063,?1382,?1797]
lable_h?=?["1月",?"2月",?"3月",?"4月",?"5月",?"6月",?"7月",?"8月",?"9月",?"10月",?"11月",?"12月"]
#?依次給每根柱子添加數(shù)據(jù)標(biāo)簽,并把字體設(shè)置為新羅馬體(教科書(shū)、論文的數(shù)字、公式一般都用新羅馬體)
N?=?len(data_h)
x?=?np.arange(N)
for?i,j?in?zip(x,?data_h):
????plt.text(j+50,?i+0.1,?"%s"?%j,?ha='center',?va?=?"top",fontsize?=?15,**TNR)
????
#?數(shù)據(jù)順序反轉(zhuǎn)
#?data_h.reverse()
#?標(biāo)簽順序反轉(zhuǎn)
#?lable_h.reverse()
#?顏色順序反轉(zhuǎn)
#?colors.reverse()
#?為了美觀,不顯示畫(huà)布的黑色邊框
[axes.spines[loc_axis].set_visible(False)?for?loc_axis?in?["top","bottom","left","right"]]
#?添加大標(biāo)題
plt.title("2021年各月份銷(xiāo)售業(yè)績(jī)(萬(wàn)元)",fontsize?=?28,**HP)?
#?添加網(wǎng)格
#?plt.grid(axis?=?"x")
plt.barh(x,?data_h,?height?=?0.7,?tick_label=lable_h,color?=?colors)
#?輸出為矢量圖,不管放大或縮小,圖形皆不會(huì)失真
plt.savefig(r"C:\Users\Administrator\Desktop\test.svg",?format="svg")
#?輸出為常規(guī)的png格式
plt.savefig(r"C:\Users\Administrator\Desktop\test.png",?format="png")
#?輸出為常規(guī)的jpg格式
plt.savefig(r"C:\Users\Administrator\Desktop\test.jpg",?format="png")
plt.show()

默認(rèn)生成的餅圖
#?解決部分?jupyter?notebook?中出圖不成功
%matplotlib?inline
#?導(dǎo)入相關(guān)庫(kù)
import?numpy?as?np
import?matplotlib.pyplot?as?plt
#?解決中文亂碼
plt.rcParams['font.sans-serif']?=?["Fangsong"]
#?顯示負(fù)號(hào)
plt.rcParams['axes.unicode_minus']?=?False
#?設(shè)置畫(huà)布大小
plt.figure(figsize=(12,6))
figure,axes?=?plt.subplots(1,1,figsize?=?(6,6),dpi?=?120)
#?構(gòu)造數(shù)據(jù)
y?=?[100,?130,?169,?220,?286,?372,?484,?629,?818,?1063,?1382,?1797]
label=["1月",?"2月",?"3月",?"4月",?"5月",?"6月",?"7月",?"8月",?"9月",?"10月",?"11月",?"12月"]
#?繪圖
plt.pie(y,labels=label)
#?添加大標(biāo)題,并設(shè)置字號(hào)大小,以及定義所用字體
plt.title("各月份銷(xiāo)售占比",fontsize?=?28)
#?輸出為矢量圖,不管放大或縮小,圖形皆不會(huì)失真
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib餅圖.svg",?format="svg")
#?輸出為常規(guī)的png格式
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib餅圖.png",?format="png")
#?輸出為常規(guī)的jpg格式
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib餅圖.jpg",?format="png")
#?可視化呈現(xiàn)
plt.show()

自定義配色的餅圖
#?解決部分?jupyter?notebook?中出圖不成功
%matplotlib?inline
#?導(dǎo)入相關(guān)庫(kù)
import?numpy?as?np
import?matplotlib.pyplot?as?plt
#?解決中文亂碼
plt.rcParams['font.sans-serif']?=?['SimHei']
#?顯示負(fù)號(hào)
plt.rcParams['axes.unicode_minus']?=?False
#?字體
TNR?=?{'fontname':'Times?New?Roman'}
Fs?=?{'fontname':'Fangsong'}
#?設(shè)置畫(huà)布大小
plt.figure(figsize=(15,6))
figure,axes?=?plt.subplots(1,1,figsize?=?(15,6),dpi?=?120)
y?=?[100,?130,?169,?220,?286,?372,?484,?629,?818,?1063,?1382,?1797]
label=["1月",?"2月",?"3月",?"4月",?"5月",?"6月",?"7月",?"8月",?"9月",?"10月",?"11月",?"12月"]?#?設(shè)置餅圖標(biāo)簽
#?數(shù)據(jù)順序反轉(zhuǎn)
y.reverse()
#?標(biāo)簽順序反轉(zhuǎn)
label.reverse()
#?自定義餅圖各扇區(qū)的顏色
colors=["#4E79A7",??"#A0CBE8",??"#F28E2B",??"#FFBE7D",??"#59A14F",??"#8CD17D",??"#B6992D",??"#F1CE63",??"#499894",??"#86BCB6",??"#E15759",??"#E19D9A"]
plt.pie(y,
????????labels=label,?#?設(shè)置分組類(lèi)別標(biāo)簽
????????colors?=?colors,??#自定義每個(gè)扇區(qū)的顏色
#?????????explode=(0,?0.2,?0,?0,0,0,?0,0,0,?0,0,0),?#?讓比值較大的扇區(qū)炸裂開(kāi)來(lái),占比越大,距離圓心越遠(yuǎn)
????????autopct='%.2f%%',?#?讓標(biāo)簽以百分比形式顯示,且精確到兩位小數(shù)
????????labeldistance?=?1.1,?#?分組名稱(chēng)標(biāo)簽相對(duì)圓心的距離位置
????????pctdistance?=?0.9,?#?數(shù)值標(biāo)簽相對(duì)圓心的距離位置
#?????????shadow?=?True,?#?添加陰影
????????radius?=?1,??#?餅圖的相對(duì)半徑
????????startangle?=?90,??#?繪圖的起始角度
????????counterclock?=?False??#?時(shí)針?lè)较?/span>
???????)
#?添加大標(biāo)題,并設(shè)置字號(hào)大小,以及定義所用字體
plt.title("各月份銷(xiāo)售占比",fontsize?=?28,**HP)
#?輸出為矢量圖,不管放大或縮小,圖形皆不會(huì)失真
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib餅圖.svg",?format="svg")
#?輸出為常規(guī)的png格式
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib餅圖.png",?format="png")
#?輸出為常規(guī)的jpg格式
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib餅圖.jpg",?format="png")
#?繪圖
plt.show()

調(diào)整角度的餅圖
#?解決部分?jupyter?notebook?中出圖不成功
%matplotlib?inline
#?導(dǎo)入相關(guān)庫(kù)
import?numpy?as?np
import?matplotlib.pyplot?as?plt
#?解決中文亂碼
plt.rcParams['font.sans-serif']?=?['SimHei']
#?顯示負(fù)號(hào)
plt.rcParams['axes.unicode_minus']?=?False
#?字體
TNR?=?{'fontname':'Times?New?Roman'}
Fs?=?{'fontname':'Fangsong'}
#?設(shè)置畫(huà)布大小
plt.figure(figsize=(12,6))
figure,axes?=?plt.subplots(1,1,figsize?=?(6,6),dpi?=?120)
y?=?[100,?130,?169,?220,?286,?372,?484,?629,?818,?1063,?1382,?1797]
label=["1月",?"2月",?"3月",?"4月",?"5月",?"6月",?"7月",?"8月",?"9月",?"10月",?"11月",?"12月"]?#?設(shè)置餅圖標(biāo)簽
#?數(shù)據(jù)順序反轉(zhuǎn)
y.reverse()
#?標(biāo)簽順序反轉(zhuǎn)
label.reverse()
#?自定義餅圖各扇區(qū)的顏色
colors=["#4E79A7",??"#A0CBE8",??"#F28E2B",??"#FFBE7D",??"#59A14F",??"#8CD17D",??"#B6992D",??"#F1CE63",??"#499894",??"#86BCB6",??"#E15759",??"#E19D9A"]
plt.pie(y,
????????labels=label,?#?設(shè)置分組類(lèi)別標(biāo)簽
????????colors?=?colors,??#自定義每個(gè)扇區(qū)的顏色
#?????????explode=(0,?0.2,?0,?0,0,0,?0,0,0,?0,0,0),?#?讓比值較大的扇區(qū)炸裂開(kāi)來(lái),占比越大,距離圓心越遠(yuǎn)
????????autopct='%.2f%%',?#?讓標(biāo)簽以百分比形式顯示,且精確到兩位小數(shù)
????????labeldistance?=?1.1,?#?分組名稱(chēng)標(biāo)簽相對(duì)圓心的距離位置
????????pctdistance?=?0.9,?#?數(shù)值標(biāo)簽相對(duì)圓心的距離位置
#?????????shadow?=?True,?#?添加陰影
????????radius?=?1,??#?餅圖的相對(duì)半徑
????????startangle?=?90,??#?繪圖的起始角度
#?????????counterclock?=?False??#?時(shí)針?lè)较?/span>
???????)
#?添加大標(biāo)題,并設(shè)置字號(hào)大小,以及定義所用字體
plt.title("各月份銷(xiāo)售占比",fontsize?=?28,**HP)
#?輸出為矢量圖,不管放大或縮小,圖形皆不會(huì)失真
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib餅圖.svg",?format="svg")
#?輸出為常規(guī)的png格式
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib餅圖.png",?format="png")
#?輸出為常規(guī)的jpg格式
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib餅圖.jpg",?format="png")
#?繪圖
plt.show()

調(diào)整角度讓標(biāo)簽可以在內(nèi)部不重疊顯示的餅圖
#?解決部分?jupyter?notebook?中出圖不成功
%matplotlib?inline
#?導(dǎo)入相關(guān)庫(kù)
import?numpy?as?np
import?matplotlib.pyplot?as?plt
#?解決中文亂碼
plt.rcParams['font.sans-serif']?=?['SimHei']
#?顯示負(fù)號(hào)
plt.rcParams['axes.unicode_minus']?=?False
#?字體
TNR?=?{'fontname':'Times?New?Roman'}
Fs?=?{'fontname':'Fangsong'}
#?設(shè)置畫(huà)布大小
plt.figure(figsize=(12,6))
figure,axes?=?plt.subplots(1,1,figsize?=?(6,6),dpi?=?120)
y?=?[100,?130,?169,?220,?286,?372,?484,?629,?818,?1063,?1382,?1797]
label=["1月",?"2月",?"3月",?"4月",?"5月",?"6月",?"7月",?"8月",?"9月",?"10月",?"11月",?"12月"]?#?設(shè)置餅圖標(biāo)簽
#?數(shù)據(jù)順序反轉(zhuǎn)
y.reverse()
#?標(biāo)簽順序反轉(zhuǎn)
label.reverse()
#?自定義餅圖各扇區(qū)的顏色
colors=["#4E79A7",??"#A0CBE8",??"#F28E2B",??"#FFBE7D",??"#59A14F",??"#8CD17D",??"#B6992D",??"#F1CE63",??"#499894",??"#86BCB6",??"#E15759",??"#E19D9A"]
plt.pie(y,
????????labels=label,?#?設(shè)置分組類(lèi)別標(biāo)簽
????????colors?=?colors,??#自定義每個(gè)扇區(qū)的顏色
#?????????explode=(0,?0.2,?0,?0,0,0,?0,0,0,?0,0,0),?#?讓比值較大的扇區(qū)炸裂開(kāi)來(lái),占比越大,距離圓心越遠(yuǎn)
????????autopct='%.2f%%',?#?讓標(biāo)簽以百分比形式顯示,且精確到兩位小數(shù)
????????labeldistance?=?1.1,?#?分組名稱(chēng)標(biāo)簽相對(duì)圓心的距離位置
????????pctdistance?=?0.9,?#?數(shù)值標(biāo)簽相對(duì)圓心的距離位置
#?????????shadow?=?True,?#?添加陰影
????????radius?=?1,??#?餅圖的相對(duì)半徑
????????startangle?=?180,??#?繪圖的起始角度
#?????????counterclock?=?False??#?時(shí)針?lè)较?/span>
???????)
#?添加大標(biāo)題,并設(shè)置字號(hào)大小,以及定義所用字體
plt.title("各月份銷(xiāo)售占比",fontsize?=?28,**HP)
#?輸出為矢量圖,不管放大或縮小,圖形皆不會(huì)失真
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib餅圖.svg",?format="svg")
#?輸出為常規(guī)的png格式
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib餅圖.png",?format="png")
#?輸出為常規(guī)的jpg格式
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib餅圖.jpg",?format="png")
#?繪圖
plt.show()

炸裂出來(lái)的餅圖
#?解決部分?jupyter?notebook?中出圖不成功
%matplotlib?inline
#?導(dǎo)入相關(guān)庫(kù)
import?numpy?as?np
import?matplotlib.pyplot?as?plt
#?解決中文亂碼
plt.rcParams['font.sans-serif']?=?['SimHei']
#?顯示負(fù)號(hào)
plt.rcParams['axes.unicode_minus']?=?False
#?字體
TNR?=?{'fontname':'Times?New?Roman'}
Fs?=?{'fontname':'Fangsong'}
#?設(shè)置畫(huà)布大小
plt.figure(figsize=(12,6))
figure,axes?=?plt.subplots(1,1,figsize?=?(6,6),dpi?=?120)
#?構(gòu)造數(shù)據(jù)
y?=?[100,?130,?169,?220,?286,?372,?484,?629,?818,?1063,?1382,?1797]
label=["1月",?"2月",?"3月",?"4月",?"5月",?"6月",?"7月",?"8月",?"9月",?"10月",?"11月",?"12月"]
#?數(shù)據(jù)順序反轉(zhuǎn)
y.reverse()
#?標(biāo)簽順序反轉(zhuǎn)
label.reverse()
#?自定義餅圖各扇區(qū)的顏色
colors=["#4E79A7",??"#A0CBE8",??"#F28E2B",??"#FFBE7D",??"#59A14F",??"#8CD17D",??"#B6992D",??"#F1CE63",??"#499894",??"#86BCB6",??"#E15759",??"#E19D9A"]
#?開(kāi)始繪圖
plt.pie(y,
????????labels=label,?#?設(shè)置分組類(lèi)別標(biāo)簽
????????colors?=?colors,??#自定義每個(gè)扇區(qū)的顏色
????????explode=(0.2,?0.1,?0,?0,0,0,?0,0,0,?0,0,0),?#?讓比值較大的扇區(qū)炸裂開(kāi)來(lái),占比越大,距離圓心越遠(yuǎn)
????????autopct='%.2f%%',?#?讓標(biāo)簽以百分比形式顯示,且精確到兩位小數(shù)
????????labeldistance?=?1.1,?#?分組名稱(chēng)標(biāo)簽相對(duì)圓心的距離位置
????????pctdistance?=?0.9,?#?數(shù)值標(biāo)簽相對(duì)圓心的距離位置
#?????????shadow?=?True,?#?添加陰影
????????radius?=?1,??#?餅圖的相對(duì)半徑
????????startangle?=?90,??#?繪圖的起始角度
????????counterclock?=?False??#?時(shí)針?lè)较?/span>
???????)
#?添加大標(biāo)題,并設(shè)置字號(hào)大小,以及定義所用字體
plt.title("各月份銷(xiāo)售占比",fontsize?=?28,**HP)
#?輸出為矢量圖,不管放大或縮小,圖形皆不會(huì)失真
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib餅圖.svg",?format="svg")
#?輸出為常規(guī)的png格式
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib餅圖.png",?format="png")
#?輸出為常規(guī)的jpg格式
plt.savefig(r"C:\Users\Administrator\Desktop\matplotlib餅圖.jpg",?format="png")
#?可視化呈現(xiàn)
plt.show()

延申出來(lái)的學(xué)習(xí)資料:https://www.bilibili.com/video/BV11Q4y1f7VH
如何找到我:

