?一、認識單子圖
import matplotlib.pyplot as plt
import numpy as np
import pandas as pdplt.figure(num='單子圖', figsize=(12, 8), facecolor='w')
# 中文字體
plt.rcParams['font.sans-serif'] = 'KaiTi'
# 負號顯示
plt.rcParams['axes.unicode_minus'] = False# 2行,1列,第1個區域
plt.subplot(211)
x = np.arange(5)
y = np.array([1, 3, 5, 4, 8])
# 折線圖
plt.plot(x, y, 'r--D', ms=5, mfc='r', mec='k')plt.title("折線圖", fontsize='20')
plt.ylabel("溫度", fontsize='14')
plt.xticks(x, ['1月', '2月', '3月', '4月', '5月'])
# 添加數據標簽
for a, b in zip(x, y):plt.text(a, b+0.5, '%d' % b, ha='center', va='center')
plt.legend(['茂名市', ])bar_width=0.3
plt.subplot(212)
# 柱形圖
plt.bar(x, y, width=bar_width)
plt.title("柱形圖", fontsize='20')
plt.ylabel("溫度",fontsize='14')
plt.xticks(x, ['1月', '2月', '3月', '4月', '5月'])
for a,b in zip(x,y):plt.text(a,b+0.1,'%d'%b,ha='center',fontsize=8)
plt.legend(['茂名市', ])# 自動調整適合布局
plt.tight_layout()
plt.show()

二、折線圖和餅圖
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import matplotlib.style as msplt.figure(num='子圖', figsize=(12, 9), facecolor='w')
plt.rcParams['font.sans-serif'] = 'KaiTi'
plt.rcParams['axes.unicode_minus'] = Falsex = np.arange(1, 13)
# x=np.array([x for x in range(1,13)])y1 = np.array([20, 28, 23, 16, 29, 36, 39, 33, 31, 19, 21, 25])
y2 = np.array([17, 22, 39, 26, 35, 23, 25, 27, 29, 38, 20, 20])
labels = []
for i in range(1, 13):labels.append(str(i) + '月')ax1 = plt.subplot(211)
ax1.set_facecolor('w')
ax1.plot(x, y1, 'm--o', linewidth=2, ms=5)
ax1.plot(x, y2, 'g--*', lw=2, ms=5)ax1.set_title('產品A與產品B的銷售額趨勢', fontsize='20')
ax1.set_ylabel('銷售額(億元)', fontsize='16')
ax1.set_xticks(x, labels)
ax1.set_xlabel('月份', fontsize='16')for a,b in zip(x,y1):ax1.text(a,b+0.5,'%d' %b,ha='center')
for a,b in zip(x,y2):ax1.text(a,b+0.5,'%d' %b,ha='center')ax1.legend(['產品A', '產品B', ])# 下面的餅圖
ax2 = plt.subplot(223)
# 餅圖是逆時針畫的,兩個%%顯示一個%
# labels:每一個餅圖的標簽
# autopct:餅內顯示的百分比
# explode:每一個脫離圓心的值
# pctdistance:餅圖內數據標簽對圓心的距離,默認0.6
# shadow=True:給餅圖給陰影
# labeldistance:標簽對圓心的距離,默認 1.1
# startangle:從多少度逆時針去畫圖;startangle=90,從90度開始畫,默認0度
# radius:餅圖的半徑大小,默認1.2
# wedgeprops:餅圖變圓環(0.7),linewidth:邊長大小,edgecolor:邊的顏色
# textprops:調標簽文本,fontsize:字體大小,fontfamily:字體樣式,color:字體顏色
# frame=True:顯示圖框
ax2.pie(y1,radius=1.2,autopct='%3.1f%%', pctdistance = 0.7,wedgeprops={'width':0.7}, labels=labels)
ax2.set_title('產品A的銷售額',y=1.05, pad=10)ax2 = plt.subplot(224)
ax2.pie(y2,radius=1.2,autopct='%3.1f%%', pctdistance = 0.7,wedgeprops={'width':0.7}, labels=labels)
ax2.set_title('產品B的銷售額',y=1.05, pad=10)plt.tight_layout()
plt.show()

三、餅圖和堆積圖
import matplotlib.pyplot as plt
import numpy as np
import pandas as pdplt.figure(num='多子圖', figsize=(12, 9), facecolor='w')
plt.rcParams['font.sans-serif'] = 'KaiTi'
plt.rcParams['axes.unicode_minus'] = Falsex = np.arange(1, 13)y1 = np.array([20, 28, 23, 16, 29, 36, 39, 33, 31, 19, 21, 25])
y2 = np.array([17, 22, 39, 26, 35, 23, 25, 27, 29, 38, 20, 20])
labels = []
for i in range(1, 13):labels.append(str(i) + '月')ax1 = plt.subplot(212)
# ax1.set_facecolor('grey')
# stack:堆積
ax1.stackplot(x,y1,y2)
ax1.set_ylim(0,80)ax1.set_title('產品A與產品B的銷售額趨勢', fontsize='20')
ax1.set_ylabel('銷售額(億元)', fontsize='16')
ax1.set_xticks(x, labels)
ax1.set_xlabel('月份', fontsize='16')
ax1.set_ylim(0,100)ax1.legend(['產品A', '產品B', ])ax2 = plt.subplot(221)
ax2.pie(y1,radius=1.2,autopct='%3.1f%%', pctdistance = 0.7,wedgeprops={'width':0.7}, labels=labels)
ax2.set_title('產品A的銷售額',y=1.05, pad=10)ax2 = plt.subplot(222)
ax2.pie(y2,radius=1.2,autopct='%3.1f%%', pctdistance = 0.7,wedgeprops={'width':0.7}, labels=labels)
ax2.set_title('產品B的銷售額',y=1.05, pad=10)plt.tight_layout()
plt.show()
