matplotlib基本作圖方法小結

matplotlib作爲python的基本繪圖包,用起來還是挺方便的,與matlab大同小異。個人覺得比matlab的圖稍微好看一些。科研中用的最多的還是折線圖,下面是其基本用法:

import matplotlib.pyplot as plt

x = [1,2,3,10]
y = [8,5,4,12]
#可用字符串表示線的樣式,比如"b^-",ms是標記大小,label是圖例
#還可以根據需求設置線的粗細等其他樣式
plt.plot(x,y,"b^-",ms="6",label="mylabel")
#設置橫縱座標軸的範圍
plt.xlim(-2,12)
plt.ylim(2,14)
#設置橫縱座標軸標籤
plt.xlabel("x")
plt.ylabel("y")
#設置標題
plt.title("mytitle")
plt.legend()
#畫網格線,默認橫縱座標軸都畫,grid(axis="y")表示只畫y軸
plt.grid()
plt.show()

自定義座標軸

有時我們想自定義座標軸,比如想讓上圖點的橫座標等距分佈,可以使用xticks():
import matplotlib.pyplot as plt

x = [1,2,3,10]
y = [8,5,4,12]
#可用字符串表示線的樣式,比如"b^-",ms是標記大小,label是圖例
#還可以根據需求設置線的粗細等其他樣式
plt.plot([2,4,6,8],y,"b^-",ms="6",label="mylabel")
plt.xticks([2,4,6,8],x)
#設置橫縱座標軸的範圍
plt.xlim(-2,12)
plt.ylim(2,14)
#設置橫縱座標軸標籤
plt.xlabel("x")
plt.ylabel("y")
#設置標題
plt.title("mytitle")
plt.legend()
#畫網格線,默認橫縱座標軸都畫,grid(axis="y")表示只畫y軸
plt.grid()
plt.show()

雙y軸

有時我們需要在一張圖上畫具有不同y軸的線:

import matplotlib.pyplot as plt

x1 = [1,2,3,10]
y1 = [8,5,4,12]
x2 = [2,4,8,10]
y2 = [800,600,500,650]

fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.set_xlabel("x")
ax1.set_ylabel("y1")
ax1.plot(x1,y1,"o-")
ax1.set_ylim(2,14)

ax2 = ax1.twinx()
#這裏用到了一個小技巧,重複畫兩次y2,後一次把前一次覆蓋了
#這樣可以讓兩條線看似在一個圖例中顯示,比分開顯示圖例好看些
ax2.plot(x2,y2,"o-",ms="5",label="y1")
ax2.plot(x2,y2,"s-",label="y2")
ax2.set_ylim(400,1000)
ax2.set_ylabel("y2")

plt.xlim(0,12)
plt.title("mytitle")
plt.legend()
plt.grid(axis="y")
#圖標註釋
ax1.annotate('point',xy=(5,5.8),xytext=(7,7),
    arrowprops=dict(arrowstyle="->",connectionstyle="arc3"))
plt.show()


發佈了24 篇原創文章 · 獲贊 19 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章