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()
自定義座標軸
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軸
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()