1. 程式人生 > 實用技巧 >Python中的Matplotlib繪圖

Python中的Matplotlib繪圖

Matplotlib是Python的繪圖工具,用Matplotlib可以繪製出我們想要的各類2D圖。Matplotlib可用於python指令碼、jupyter notebook、web等。個人認為在Jupyter Notebook中,Matplotlib表現非常棒哈哈!!

這篇隨筆記錄下關於最近學習Python資料分析繪圖的知識點。(並非全面細緻,僅供參考)

1.Matplotlib的基礎構成

1.1figure

就像我們生活當中畫畫一樣,畫圖需要我們提供一個畫板,新增各種元素,figure則是充當這麼一個角色(物件)。

import matplotlib.pyplot as plt
fig = plt.figure()

1.2axes

Matplotlib是一個2D繪相簿,我們類似於數學將這個畫板分成x和y這兩個座標軸。使用axes設定x和y軸。

1 fig = plt.figure()
2 ax = fig.add_subplot(221)
3 ax.set(xlim=[0,4], ylim=[0, 10], title='An Axes',ylabel='Y', xlabel='X')
4 plt.show()

執行結果如下圖所示:

1.3xlim和ylim方法

xlim和ylim方法從字面意思也可以理解,就是給這個圖設定了座標軸範圍。

plt.plot(x**3,y)
plt.xlim(0,2)
plt.ylim(0,
7) plt.show()

執行結果如下圖:

1.4座標軸標籤

座標軸標籤的方法有xlabel和ylabel,其中的color代表顏色,fontsize代表字型大小,rotation表示旋轉角度。

1.5標題

plt.title()方法,方法同坐標軸標籤,附加:loc=‘left/right/center’,表示標題位於左右中的哪個位置。

結合座標軸標籤和標題,舉一個例子:

import matplotlib.pyplot as plt
axes = plt.subplot(111)
axes.plot(x,y)
axes.set_ylabel('Y',fontsize=20,color='
red',rotation=90) axes.set_xlabel('X',fontdict={ 'fontsize':20, 'color':'blue' }) plt.title('X&Y',color='green',fontsize=20) plt.show()

執行結果如下:

基礎的畫圖方法大概就是這些,其實中間還有一些小細節,可以自行去網上或者相關書籍查閱。

2.基本的2D圖

2.1散點圖

顧名思義,散點圖只有點沒有線,這裡可以藉助random和numpy來繪圖。

x = np.arange(10)
y = np.random.randn(10)
plt.scatter(x, y, color='blue', marker='*')
plt.show()

執行結果如下圖:

2.2柱狀圖

柱狀圖有垂直的和水平的這兩種。程式碼圖形如下:

np.random.seed(1)
x = np.arange(10)
y = np.random.randn(10)
fig, axes = plt.subplots(ncols=2, figsize=plt.figaspect(1./2))
vert_bars = axes[0].bar(x, y, color='lightblue', align='center')
horiz_bars = axes[1].barh(x, y, color='lightblue', align='center')
axes[0].axhline(0, color='red', linewidth=2.5)
axes[1].axvline(0, color='blue', linewidth=2.5)
plt.show()

2.3餅形圖

餅形圖一般是根據各個label的百分比畫餅。各個標籤的百分比之和為100%。對於這部分我個人理解的還是少,也只是根據書上和網上大概知道一些成形的程式碼,如需細究,還請網上查詢hh!

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0)  # only "explode" the 2nd slice (i.e. 'Hogs')

fig1, (ax1, ax2) = plt.subplots(2)
ax1.pie(sizes, labels=labels, autopct='%1.1f%%', shadow=True)
ax1.axis('equal')
ax2.pie(sizes, autopct='%1.2f%%', shadow=True, startangle=90, explode=explode,
    pctdistance=1.12)
ax2.axis('equal')
ax2.legend(labels=labels, loc='upper right')

plt.show()

其實還有一些圖表,例如泡泡圖,箱型圖,輪廓圖,包括3D圖等等,都可以用Matplotlib繪畫出來,這就是鄙人的知識盲區了,若您想了解其他相關知識,煩請參考其他部落格,小白的我,實在不會什麼,告辭!