Matplotlib:入門二
來自專欄 DataCode
上一篇介紹了Matplotlib:入門一。本節繼續介紹python中作圖庫Matplotlib庫。
主要分為如下部分:- pyplot中plot()函數詳解
- pyplot 中文顯示
- pyplot 文本顯示
plot()函數
plot()函數調用格式如下:
import matplotlib.pyplot as pltplt.plot(x ,y ,format_string, **kwargs)
參數說明如下:
- x :x軸數據,列表或者數組,可以無
- y :y軸數據,列表或者數據
- format_string:控制曲線風格的字元串,可以無
- **kwargs :第二組曲線或者更多曲線控制參數。
下面是只有多組x,y的一個示例:
import numpy as npimport matplotlib.pyplot as plta = np.arange(10)plt.plot(a,a*1.5,a,a*2.5,a,a*3.5,a,a*4.5)plt.show()
這裡需要注意有多組x,y時,x都不能省略。不然容易歧義。注意上面的圖,自動給曲線加了顏色區分。
曲線風格設置
通過format_string屬性控制曲線格式字元串,可以選擇顏色,風格,標記。
顏色
顏色字元說明:『b』藍色『g』綠色『r』紅色『y』黃色『k』黑色『0.8』灰度值字元串
風格
風格字元說明『‐』實線『‐‐』破折線『‐.』點劃線『:』虛線『』 『』無線條
標記
標記字元說明』.』點標記』v』倒三角標記』^』上三角標記』>』右三角標記』+』十字標記』*』星形標記』s』實心方形標記』x』x標記
實際使用中這控制字元記可以組合使用。下面是一個例子。
import numpy as npimport matplotlib.pyplot as plta = np.arange(10)plt.plot(a,a*1.5,go-,a,a*2.5,rx,a,a*3.5,*,a,a*4.5,b-.)plt.show()
中文顯示
由於pyplot本身不支持中文顯示,需要修改其他屬性才能正常顯示中文。
一種方法是通過rcParams來實現修改字體。具體代碼示例如下:import matplotlib.pyplot as pltimport matplotlibimport numpy as npmatplotlib.rcParams[font.family]=SimHeimatplotlib.rcParams[font.size]= 20a = np.arange(0.0,5.0,0.02)plt.ylabel(縱軸:振幅)plt.xlabel(橫軸:時間)plt.plot(a, np.cos(2*np.pi*a),r--)#plt.savefig("zhongwen",dpi=300)plt.show()
rcParams屬性值如下:
屬性說明『font.family』用於顯示字體的名字『font.style』字體風格,正常』normal』或 斜體』italic』『font.size』字體大小,整數字型大小或者』large』、 『x‐small』
上述代碼例子中的』SimHei』表示黑體字體。
另一種方法是,在有中文顯示的地方增加一個屬性fontproperties。
具體示例如下:import matplotlib.pyplot as pltimport matplotlibimport numpy as npa = np.arange(0.0,5.0,0.02)plt.ylabel(縱軸:振幅,fontproperties=SimHei,fontsize=20)plt.xlabel(橫軸:時間,fontproperties=SimHei,fontsize=20)plt.plot(a, np.cos(2*np.pi*a),r--)plt.show()
文本顯示
文本顯示,包括x軸,y軸名稱,標題名稱,圖片中文本。
上面的例子中已經涉及到這些顯示了,這裡再用一個例子統一示例如下:import matplotlib.pyplot as pltimport matplotlibimport numpy as npa = np.arange(0.0,5.0,0.02)plt.plot(a, np.cos(2*np.pi*a),r--)plt.ylabel(縱軸:振幅,fontproperties=SimHei,fontsize=15)plt.xlabel(橫軸:時間,fontproperties=SimHei,fontsize=15,color=green)plt.title(r正弦波實例:$y=cos(2pi x)$,fontproperties=SimHei,fontsize = 25)plt.text(2,1,r$mu=100$,fontsize = 15)plt.axis([-1,6,-2,2]) # 控制x,y軸顯示範圍plt.grid(True) #顯示圖片中網格plt.show()
上一節內容:
Matplotlib:入門一
參考:北京理工大學 嵩天 《python數據分析與展示》
公眾號:DataCode 首發。歡迎關注。
推薦閱讀:
※星巴克點亮全球:看看哪些城市星巴克最多
※2018年全球互聯網發展數據分析
※數據可視化解決方案:智能商業的5大核心能力(一)
※【R圖秀】情人節快樂!
※教育政策是否應該向貧困學生傾斜?
TAG:Matplotlib | Python | 可視化 |