用pyecharts繪製出來的面積圖、圓環圖太有個性了,未免感覺有點「高處不勝寒」。今晚雖然休息,但繼用matplotlib繪製折線圖之後,我又心血來潮地想用matplotlib來製作一點面積圖,因為這在零售行業也是常用的可視化圖形之一。具體如下:
繪製常規面積圖(餅圖):
import matplotlib.pyplot as pltimport numpy as np
%matplotlib inline
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
fig = plt.figure(figsize = (10,10))
data=[100,125,135,145,150]colors = ["DarkMagenta", "Teal", "pink", "SlateGray", "Tomato"]labels = ["蔬菜", "水果", "水產", "豬肉", "綜合"]
plt.pie(data, colors = colors, labels = labels,autopct = " %1.1f%% ",labeldistance = 0.4, radius = 1,counterclock = False,center = (0.5, 0.5))
plt.savefig(r"C:\Users\QDM\Desktop\餅圖.png")可視化結果:
繪製圓環圖:
# 導入庫import matplotlib.pyplot as pltimport numpy as np
# 在線顯示%matplotlib inline
# 讓中文標籤正常顯示plt.rcParams["font.sans-serif"] = ["SimHei"]
# 讓負號正常顯示plt.rcParams["axes.unicode_minus"] = False
# 調整畫布的大小fig = plt.figure(figsize = (10,6))
# 模擬數據x=[16,41,60]
# 繪製一個我們自己所需要呈現的面積圖# plt.pie(x, labels=["上午銷售佔比", "下午銷售佔比", "晚上銷售佔比"])
# 自定義各段區間的顏色# plt.pie(x, labels=["上午銷售佔比", "下午銷售佔比", "晚上銷售佔比"],colors = ["m","Crimson","blue"])
# 顯示百分比# plt.pie(x, labels=["上午銷售佔比", "下午銷售佔比", "晚上銷售佔比"],colors = ["m","Crimson","blue"],autopct = " %1.1f%% ")
# 調整百分比所顯示的位置plt.pie(x, labels=["上午銷售佔比", "下午銷售佔比", "晚上銷售佔比"],colors = ["m","Crimson","SteelBlue"],autopct = " %1.1f%% ",pctdistance = 0.8)
# plt.pie(x, labels=["上午銷售佔比", "下午銷售佔比", "晚上銷售佔比"],colors = ["m","#f00056","Orchid"],autopct = " %1.1f%% ",pctdistance = 0.8,labeldistance = 1)
# 在第一個餅圖的基礎上再畫一個顏色為白色,半徑較小的餅圖進行覆蓋,就可以畫出圓環圖plt.pie([1],colors = "w",radius = 0.6)plt.axis("equal")plt.legend()
# 保存輸出環形圖plt.savefig(r"C:\Users\QDM\Desktop\環形圖.png")可視化結果:
繪製另類的混合圖形:
import matplotlib.pyplot as pltimport numpy as np
%matplotlib inline
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
fig = plt.figure(figsize = (10,6))
a = [0.4, 0.15, 0.2, 0.1, 0.15]b = [0.3, 0.25, 0.16, 0.14, 0.15]label=["蘋果", "雪梨", "西瓜", "菠蘿", "香瓜"]
plt.pie(a,autopct = " %1.1f%% ", pctdistance = 0.85,labels = label)
plt.pie(b,radius = 0.7, autopct = " %1.1f%% ",pctdistance = 0.78,)plt.axis("equal")
plt.savefig(r"C:\Users\QDM\Desktop\混合面積圖.png")可視化結果:
小結:雖然不完美,但是歸納知識的過程很是愉悅!