python + matplotlib.pyplot圖形基本操作和部分精細化操作
阿新 • • 發佈:2019-01-10
第一步:顯示一張圖片
第二步:在同一座標下畫出兩條線(一些基本命令)
# /usr/bin/env python # coding: utf-8 # 2018年06月01日21:53:46 # 學習python中matplotlib的筆記 # 參考網站1: http://cs231n.github.io/python-numpy-tutorial/#matplotlib # 參考網站2: https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.plot # matplotlib.pyplot類似於MATLAB中的畫圖命令plot import matplotlib.pyplot as plt import numpy as np #==========================第一步:畫出圖形並顯示====================================# # x = np.arange(0, 2*np.pi, 0.01)# 表示起點為0, 終點為2×pi, 步長為0.01的陣列 # # print(type(x)) # # print(x) # y = np.sin(x) # plt.plot(x, y)# 有這一行只是畫出了圖形,橫軸為x,縱軸為y。但是還無法顯示圖形 # plt.show()# 有了這個命令,圖形才能顯示 #============第二步:在同一座標軸下畫出兩條線並對圖形進行標註:圖例,標題,座標,=============# # x1 = np.arange(0, 2*np.pi, 0.01) # y1 = np.sin(x1) # y2 = np.cos(x1)# 這兩個都是numpy的函式,呼叫就行,但是不要忘記加上np. # plt.plot(x1, y1) # plt.plot(x1, y2) # plt.title("sin()&cos()")# 標題,用單引號或者雙引號都行 # plt.xlabel("x")# X軸的標籤 # plt.ylabel("y")# y軸的標籤 # plt.legend(["sin(x)","cos(x)"])# 寫出圖例,圖例內容與畫圖順序一致。 # # 注意到,這裡由於是兩個或者兩個以上的圖例,需要用中括號表示,否則會顯示出錯 # plt.show()#這個一定要最後顯示,如果在定義標題、座標軸標籤以及圖例之前,在其後註明的可能並不會顯示 # 也可以將兩個畫圖命令合為一個,程式碼也就更加簡單 # x1 = np.arange(0, 2*np.pi, 0.01) # y1 = np.sin(x1) # y2 = np.cos(x1) # plt.plot(x1,y1, x1,y2) # plt.show() #=====================第三步:在一個視窗畫出多幅圖(subplot命令)========================# # x1 = np.arange(0, 2*np.pi, 0.01) # y1 = np.sin(x1) # y2 = np.cos(x1)# 這兩個都是numpy的函式,呼叫就行,但是不要忘記加上np. # plt.subplot(1,2,1)# subplot和MATLAB一樣,可以用來切分視窗,前兩個數字表示如何切分視窗 # # 這裡的1和2分別表示將一個視窗分成一行但有兩列的影象視窗,最後一個1表示啟用第一個視窗,在這個視窗下開始畫圖 # plt.plot(x1, y1) # plt.xlabel("x") # plt.ylabel("y") # plt.title("sin(x)") # # plt.subplot(1,2,2)# 最後一個2表示啟用第二個視窗,在這個視窗下開始畫圖 # # 注意,如果是多行多列,一般從左到右,從上到下,視窗序號依次增加 # plt.plot(x1, y2) # plt.xlabel("x") # plt.ylabel("y") # plt.title("cos(x)") # plt.show() #=====================第四步:圖形的高階標註:線寬,顏色,資料標記等==========================# # 資料點上的標記稱為marker,有標記的顏色和標記的大小 # 資料點之間需要用線連線,這條線可以指定寬度(如果沒有線,則線寬不顯示) # 資料點之間的線條屬性包括線寬,線型,線的顏色等 x1 = np.arange(0, 2*np.pi, 0.5) # 注意,如果這裡資料點不能太密,否則在每個資料點上畫圖,會使得資料標記看不清,因為marker都重疊了 y1 = np.sin(x1) y2 = np.cos(x1) plt.plot(x1,y1,'r+-.',linewidth=1,markersize=12) # 這裡,r表示red,+表示資料點的標記(marker) # -.表示線型,linewidth指定線寬 # markersize表示標記的大小 plt.plot(x1,y2,'b*-',linewidth=3) plt.title("sin(x) and cos(x)") plt.xlabel("x") plt.ylabel("y") plt.legend(["sin(x)", "cos(x)"]) plt.show()
第三步:利用subplot命令在一個視窗下顯示兩幅圖
第四步:一副比較精細化操作的繪圖
注意:我們在利用matplotlib畫圖時,儘量使用第四步的方法,這樣得到的圖形更加漂亮
正所謂更自由,我們也需要為此付出一定的代價。