1.Matplotlib簡介
Matplotlib是一個Python繪圖庫,可以非常方便的繪制出以下圖形:
- 折線圖
- 散點圖
- 條形圖
- 直方圖
- 以及等高線圖、3D圖形,甚至是圖形動畫等。
2.安裝
2.1 方式一
在命令窗口執行以下命令:
pip install matplotlib
2.2 方式二
到官網去下載對應的安裝包,然后在命令窗口執行以下命令:
cd download # download為下載目錄
pip install xxx.whl # xxx.whl為安裝包名
注:Windows環境需要確保安裝有Visual Studio。
3.基礎使用
3.1 基本用法
- 導包
from matplotlib import pyplot as plt
- 配置x軸、y軸數據
x = [1, 2, 3]
y = [2, 4, 6]
- 繪制
plt.plot(x, y)
- 展示
plt.show()
- 保存
plt.savefig("./sig_size.png")
參數為圖片保存地址。
- 效果圖

3.2 設置圖片和線條格式
注:所有設置都需要放在圖片繪制前
- 設置圖片
fig = plt.figure(figsize=(20, 8), dpi=80)
figsize設置的是圖片的長和寬,單位為英寸;dpi為每英寸長度內像素點數;上面的設置生成的圖片大小為1600x640(像素)。
- 設置線條格式
plt.plot(x, y, color="red", linestyle="-.", linewidth=5, alpha=0.4)
color設置的是線條顏色,linestyle設置的是線條樣式,linewidth設置的是線條寬度,alpha設置的是線條的透明度。
- 效果圖

3.3 設置坐標軸
- 設置中文支持
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttf")
fname對應的是系統中文字體位置(其他類型字體沒試過,自行嘗試)。
- 設置坐標軸刻度
plt.xticks(x, x_ticks_labels, rotation=0, fontproperties=my_font)
plt.yticks(y, y_ticks_labels, rotation=45, fontproperties=my_font)
x,y為數字類型數組,x_ticks_labels、y_ticks_labels為字符串類型數組,一般是對應數據的說明;rotation設置的是標簽的旋轉度;fontproperties設置的是字體。
- 設置坐標軸描述信息
plt.xlabel("產品", fontproperties=my_font)
plt.ylabel("銷量", fontproperties=my_font)
- 設置坐標軸邊框
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
- 設置x軸標簽和坐標軸位置
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data', 0))
ax.spines['bottom'].set_position(('data', 0))
第一行代碼是調整x軸標簽位置,后兩行代碼調整的是坐標軸的位置(此項設置必須放在設置坐標軸刻度之前,否則刻度為中文時會顯示為亂碼)。
+效果圖

3.4 添加圖例
plt.plot(x, y, color="red", linestyle="-.", linewidth=5, alpha=0.4, label="產品銷量")
plt.legend(prop=my_font, loc=("upper left"))
繪制時添加label標簽,loc設置的是圖例顯示的位置
效果圖:

3.5 添加標注
- annotate注釋
plt.annotate(r'這里是對(第一個點的標注)', xy=(x[0], y[0]), xycoords='data', xytext=(+30, -30),
textcoords='offset points', arrowprops=dict(arrowstyle='->', connectionstyle="arc3,rad=.2"),
fontproperties=my_font)
第一個參數是注釋內容,第二個參數是需要注釋的坐標點信息,第三個參數是坐標點是基於什么選擇,第四個和第五個參數是注釋位置設置及相對坐標點的偏移,第六個參數設置的是箭頭的信息。
- text注釋
plt.text(-3.7, 3, r'這里是普通文本注釋', fontdict={'size': 16, 'color': 'r'}, fontproperties=my_font)
第一個和第二個參數是設置文本的位置,第三個參數設置的是注釋內容,第四個參數設置的是文本的樣式。
- 效果圖

- 繪制網格
plt.grid(alpha=0.4)
參數設置的是網格的透明度。
4.其他類型畫圖
plot繪制的是折線圖,其他類型與之大同小異,只是關鍵字不同。
- 散點圖
關鍵字是scatter,即繪制圖形時,將plot替換成scatter。

- 條形圖
關鍵字是bar(縱向)以及barh橫向。

繪制橫向條形圖時xy的數據需要調換,而且為了美觀,一般是y的值過大,導致圖片過高時,才需要使用。 - 直方圖
關鍵字是hist。因為是統計區間內的出現的次數,所以y軸不能為負(不會顯示)。
