python之matplotlib繪圖基礎


Python之matplotlib基礎

matplotlib是Python優秀的數據可視化第三方庫
matplotlib庫的效果可參考
http://matplotlib.org/gallery.html
matplotlib的使用 由各種可視化類構成,內部結構復雜,受matlab庫啟發,matplotlab.pyplot是繪制種類可視化圖形的命令子庫,相當於快捷方式
import matplotlib.pyplot as plt

一個小示例

import matplotlib.pyplot as plt
plt.plot([2,3,4,5,1,6])
plt.ylabel("Grade")
plt.ylabel("number")
plt.axis([-1,11,0,7])
plt.savefig('test',dpi=600)#plt.savefig()將輸出圖形存儲為文件,默認為png格式,可以通過dpi修改輸出質量
plt.show()

得到結果

繪制多圖subplot

plot.subplot(nrows,ncols,plot_number)
在全局繪制區域中創建一個分區體系,並定位到一個子繪圖區域
pyplot繪圖區域示例

import numpy as np
import matplotlib.pyplot as plt

def f(t):
    return np.exp(-t) * np.cos(2 * np.pi * t)

a = np.arange(0.0, 5.0, 0.02)
plt.subplot(211)
plt.plot(a, f(a))
plt.subplot(2, 1, 2)
plt.plot(a, np.cos(2 * np.pi * a), 'r--')
plt.savefig('test',dpi=600)
plt.show()

得到結果:

pyplot的plot()函數詳解

plt.plot(x,y,format_string,**kwargs)
x:x軸數據,列表或數組,可選
y:y軸數據,列表或數組
format_string: 控制曲線的格式字符串,可遷
**kwargs: 第二組或更多的(x,y,format_string)

注意:當繪制多條曲線時,各條曲線的x不能省略

format_string:控制曲線的格式字符串,可選。由顏色字符、風格字符和標記字符組成

顏色字符 說明 顏色字符 說明
'b' blue 'm' magenta洋紅色
'g' green 'y' 黃色
'r' red 'k' 黑色
'c' cyan青綠色 'w' 白色
'#008000' RGB某顏色 '0.8' 灰度值字符串
風格字符 說明
'-' 實線
'--' 破折線
'-.' 點划線
':' 虛線
' ' 無線條
標記字符 說明 標記字符 說明 標記字符 說明
'.' 點標記 '1' 下花三角標記 'h' 豎六邊形標記
',' 像素標記(極小點) '2' 上花三角標記 'H' 橫六邊形標記
'o' 實心圏標記 '3' 左花三角標記 '+' 十字形標記
'v' 倒三角標記 '4' 右花三角標記 'x' x標記
'^' 上三角標記 's' 實心方形標記 'D' 菱形標記
'>' 右三角標記 'p' 實心五角標記 'd' 瘦菱形標記
'<' 左三角標記 '*' 星形標記 ' '
**kwargs: 第二組或更多(x,y,format_string)
color: 控制顏色 如color='green'
linestyle:線條控制 如linestyle='dashed'
marker:標記風格,marker='o'
markerfacecolor:標記顏色,markerfacecolor='blue'
markersize:標記尺寸,markersize=20
...

pyplot的中文顯示

pyplot並不默認支持中文顯示,需要rcParams修改字體實現

全局設置中文字體

import matplotlib
import matplotlib.pyplot as plt 
matplotlib.rcParams['font.family']='SimHei'
plt.plot([3,1,4,5,2])
plt.ylabel('縱軸值')
plt.savefig('test',dpi=600)
plt.show()

結果如下:

rcParams的屬性

屬性 說明
'font.family' 用於顯示字體的名字
'font.style' 字體風格,正常'normal'或斜體'italic'
'font.size' 字體大小,整數字號或者'large','x-small'

中文字體的種類

rcParams['font.family']

中文字體 說明
'SimHei' 中文黑體
'Kaiti' 中文楷體
'LiSu' 中文隸書
'FangSong' 中文仿宋
'YouYuan' 中文幼圓
STSong 華文宋體

示例:

import matplotlib
import matplotlib.pyplot as plt 
import numpy as np
matplotlib.rcParams['font.family']='STSong'
matplotlib.rcParams['font.size']=20
a = np.arange(0.0,5.0,0.02)
plt.xlabel('縱軸: 振幅')
plt.ylabel('橫軸: 時間')
plt.plot(a,np.cos(2*np.pi*a),'r--')
plt.savefig('test',dpi=600)
plt.show()

局部設置中文字體

在有中文輸出的地方,增加一個屬性:fontproperties

import matplotlib.pyplot as plt 
import numpy as np

a = np.arange(0.0,5.0,0.02)
plt.xlabel('縱軸: 振幅', fontproperties='SimHei',fontsize=20)
plt.ylabel('橫軸: 時間', fontproperties='SimHei',fontsize=20)
plt.plot(a,np.cos(2*np.pi*a),'r--')
plt.savefig('test',dpi=600)
plt.show()


注意到,如果設置全局字體的話,那么坐標軸的字體也被改變,局部設置中文字體不改變坐標軸的字體。

pyplot的文本顯示

pyplot的文本顯示函數

函數 說明
plt.xlabel() 對x軸增加文本標簽
plt.ylabel() 對y軸增加文本標簽
plt.title() 對圖形本整體增加文本標簽
plt.text() 在任意位置增加文本
plt.annotate() 在圖形中增加帶箭頭的注釋

text函數示例

import matplotlib.pyplot as plt 
import numpy as np
a = np.arange(0.0,5.0,0.02)
plt.xlabel('縱軸: 振幅', fontproperties='SimHei', fontsize=20, color = 'green')
plt.ylabel('橫軸: 時間', fontproperties='SimHei', fontsize=20)
plt.title(r'正弦波實例$y=cos(2\pi x)$',fontproperties='SimHei',fontsize=25)
plt.text(2,1,r'$\mu=100$',fontsize=15)
plt.plot(a,np.cos(2*np.pi*a),'r--')
plt.savefig('test',dpi=600)
plt.show()

annotate函數示例

import matplotlib.pyplot as plt 
import numpy as np
a = np.arange(0.0,5.0,0.02)
plt.plot(a,np.cos(2*np.pi*a),'r--')
plt.xlabel('縱軸: 振幅', fontproperties='SimHei', fontsize=20, color = 'green')
plt.ylabel('橫軸: 時間', fontproperties='SimHei', fontsize=20)
plt.title(r'正弦波實例$y=cos(2\pi x)$',fontproperties='SimHei',fontsize=25)
plt.annotate(r'$\mu=100$',xy=(2,1),xytext=(3,1.5),
	arrowprops=dict(facecolor='black',shrink=0.1,width=2))
plt.axis([-1,6,-2,2])
plt.grid()
plt.savefig('test',dpi=600)
plt.show()

http://www.mooc.cn/course/7848.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM