Matplotlib:入門二

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 | 可視化 |