Python數(shù)據(jù)可視化之matplotlib.pyplot繪圖的基本參數(shù)詳解
1.matplotlib簡(jiǎn)介
matplotlib 庫(kù)是 Python 中繪制二維和三維圖表的數(shù)據(jù)可視化工具
特點(diǎn):
使用簡(jiǎn)單繪圖語(yǔ)句實(shí)現(xiàn)復(fù)雜繪圖效果
以交互式操作實(shí)現(xiàn)漸趨精細(xì)的圖形效果
使用嵌入式 LaTex 輸出具有印刷級(jí)別的圖表、科學(xué)表達(dá)式和符號(hào)文本
對(duì)圖表的組成元素實(shí)現(xiàn)精細(xì)化控制
三種繪圖接口
- pyplot:面向當(dāng)前圖
- axes:面向?qū)ο?/li>
- Pylab:沿用 matlab 風(fēng)格
本篇文章使用plot繪圖(展示變量的趨勢(shì)變化 )展示繪圖的基本參數(shù),使用numpy庫(kù)獲得繪圖數(shù)據(jù)(隨機(jī)),最后出來(lái)的圖形并非經(jīng)過(guò)仔細(xì)思考,一切以展示圖形參數(shù)為主?。?!
使用的庫(kù):
import matplotlib.pyplot as plt import numpy as np
2.圖形組成元素的函數(shù)用法
plot():展示變量的趨勢(shì)變化
使用方法:plt.plot(x, y, c,ls, lw, label, alpha, **kwargs)
- x,y:x,y 軸上的數(shù)值
- c:設(shè)置顏色
- ls:折線圖的線條風(fēng)格
- lw:折線圖的線條寬度
- label:標(biāo)記圖形內(nèi)容的標(biāo)簽文本
- alpha:透明度
- **kwargs:指定使用的是 line2D 屬性
2.1. figure():背景顏色
使 用 方 法 :figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=Figure, clear=False, **kwargs)
num :
如果此參數(shù)沒(méi)有提供,則一個(gè)新的 figure 對(duì)象將被創(chuàng)建,同時(shí)增加 figure 的計(jì)數(shù)數(shù)值,此數(shù)值被保存在 figure 對(duì)象的一個(gè)數(shù)字屬性當(dāng)中。如果有此參數(shù),且存在對(duì)應(yīng) id 的 figure 對(duì)象,則激活對(duì)于 id 的 figure 對(duì)象。如果對(duì)應(yīng) id 的 figur 對(duì)象不存在,則創(chuàng)建它并返回它。如果 num 的值是字符串,則將窗口標(biāo)題設(shè)置為此字符串
figsize:以英寸為單位的寬高,缺省值為 rc figure.figsize (1 英寸等于 2.54 厘米)
dpi:圖形分辨率,缺省值為 rc figure.dpi
facecolor:背景色
plt.figure(figsize=(10, 10)) x = np.linspace(0.05, 10, 1000) # 在0.05到10的區(qū)間中,等差選取1000個(gè),端點(diǎn)不屬于 y = np.sin(x) plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.plot(x, y, color='red', ls='-', label='sinx') plt.show()
2.2 xlim()和 ylim():設(shè)置 x,y 軸的數(shù)值顯示范圍
使用方法:plt.xlim(xmin,xmax)
- xmin:x 軸上的最小值
- xmax:x 軸上的最大值
2.3 xlabel()和 ylabel():設(shè)置 x,y 軸的標(biāo)簽文本
使用方法:plt.xlabel(fontsize, verticalalignment, horizontalalignment, rotation, bbox)
- fontsize:數(shù)字或者(small,large,medium)
- verticalalignment:距離坐標(biāo)軸的位置(top,bottom,center,baseline)
- hoizontalalignment:位置(center,right,left)
- ratation:位置(vertical,horizontal,vertical)
- bbox:添加邊框
2.4 grid():繪制刻度線的網(wǎng)格線
使用方法:plt.grid(linestyle, color)
2.5 axhline():繪制平行于 x 軸額度水平參考線
使用方法:plt.axhline(y, c, ls, lw, label)
y:水平參考線的出發(fā)點(diǎn)
plt.figure(figsize=(10, 10)) x = np.linspace(0.05, 10, 1000) # 在0.05到10的區(qū)間中,等差選取1000個(gè),端點(diǎn)不屬于 y = np.sin(x) plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.plot(x, y, color='red', ls='-', label='sinx') plt.xlim(1, 10) plt.ylim(-1, 1) plt.xlabel('x軸') plt.ylabel('y軸') plt.grid(ls=':', color='blue') # 設(shè)置網(wǎng)格,顏色為藍(lán)色 plt.axhline(0.5, color='green', lw=2, label="分割線") # 繪制平行于x軸的水平參考線,綠色,名稱 plt.show()
(上圖中綠色的線即為axjline()添加的參考線)
2.6 axvspan():繪制垂直于 x 軸的參考區(qū)域
使用方法:plt.axvspan( xmin, xmax ,facecolor, alpha)
- xmin:參考區(qū)域的起始位置
- xmax:參考區(qū)域的終止位置
- facecolor:參考區(qū)域的填充顏色
- alpha:參考區(qū)域填充顏色的透明度,[0~1]
注:其使用方法也可以用在 axhspan()上
在上一段代碼添加
plt.axvspan(xmin=2, xmax=5, facecolor='r', alpha=0.2) # 繪制垂直于x軸的參考區(qū)域
即得到(注意:此段是區(qū)域)
2.7 xticks(),yticks()
獲取或設(shè)置當(dāng)前 x 軸或 y 軸刻度位置和標(biāo)簽(即設(shè)置 x 或 y 軸的標(biāo) 簽)
可以理解為設(shè)置xilim和ylim一樣的效果,但可以指定范圍和距離
plt.xticks(list(range(0, 12, 1))) # 調(diào)整刻度范圍和刻度標(biāo)簽
注意看x軸,從原來(lái)的0~10到現(xiàn)在的0~11,可以通過(guò)設(shè)置第三個(gè)參數(shù)設(shè)置步長(zhǎng),這里設(shè)置為1
2.8 annotate():添加圖形內(nèi)容細(xì)節(jié)的指向型注釋文本
函數(shù)方法:plt.annotate()
- s:注釋文本內(nèi)容
- xy:被注釋的坐標(biāo)點(diǎn)
- xytext:注釋文字的坐標(biāo)位置
- weight:設(shè)置字體線形(Ultralight,light,normal,regular,book,medium,roman,semibold,demibold,demi,bold,heavy,extrabold,black)
- color:設(shè)置字體顏色;也可以設(shè)置 RGB 或 RGBA 類型的顏色;但必須為[0,1]之間的浮點(diǎn) 數(shù)
xycoords= 參數(shù)如下
- figure points:圖左下角的點(diǎn)
- figure pixels:圖左下角的像素
- figure fraction:圖的左下部分
- axes points:坐標(biāo)軸左下的點(diǎn)
- axes pixels:坐標(biāo)軸左下的像素
- data:使用被注釋對(duì)象的坐標(biāo)系統(tǒng)
- arrowprops:箭頭參數(shù),參數(shù)類型為字典 dict
- width:箭頭的寬度
- headwidth:箭頭底部以點(diǎn)為單位的寬度
- headlength:箭頭的長(zhǎng)度
- shrink:總長(zhǎng)度的一部分,從兩端“收縮”
- facecolor:箭頭顏色(如果設(shè)置了 arrowstyle 關(guān)鍵字,上面的參數(shù)都不可以用,可
以用這些:
- -
- ->
- -[
- |-|
- -|>
- <->
- <|-
- <|-|>
- fancy
- simple
- wedge)
plt.annotate('local', xy=(2, 1), xytext=(0.5, 0.5), weight='bold', color='red', xycoords="data", arrowprops= dict(arrowstyle="->", connectionstyle='arc3', color='b'), bbox= dict(boxstyle="rarrow", pad=0.6, fc="yellow", ec='k', lw=1, alpha=0.5) )
這里的黃色箭頭和藍(lán)色細(xì)長(zhǎng)線即為參數(shù)方法添加的參數(shù),實(shí)際使用過(guò)程中根據(jù)自己的實(shí)際所需使用,可以認(rèn)為添加對(duì)圖像的一些解釋
2.9 bbox:給標(biāo)題增加外框
(boxstyle:方框外形;circle:橢圓;darrow:雙向箭頭;larrow:箭頭向左;rarrow:箭
頭向右;round:圓角矩形;round4:橢長(zhǎng)方形;roundtooth:波浪形邊框 1;sawtooth:
波浪形邊框 2;square:長(zhǎng)方形)
2.10 . text():添加圖形內(nèi)容細(xì)節(jié)的無(wú)指向型注釋文本(水?。?/h3>
函數(shù)方法:plt.text()
x,y:表示坐標(biāo)軸上的值
weight:
- ultralightlight
- normal
- regular
- book
- medium
- roman
- semibold
- demibold
- demi
- bold
- heavy
- extrabold
- black
xycoodrds:
- figure points:圖左下角的點(diǎn)
- figure pixels:圖左下角的像素
- figure fraction:圖的左下部分
- axes points:坐標(biāo)軸左下的點(diǎn)
- axes pixels:坐標(biāo)軸左下的像素
data:使用被注釋對(duì)象的坐標(biāo)系統(tǒng)
arrowprops:箭頭參數(shù),參數(shù)類型為字典 dict
width:箭頭的寬度
headwidth:箭頭底部以點(diǎn)為單位的寬度
headlength:箭頭的長(zhǎng)度
shrink:總長(zhǎng)度的一部分,從兩端“收縮”
facecolor:箭頭顏色
bbox:給標(biāo)題增加外框
boxstyle:方框外形
circle:橢圓
darrow:雙向箭頭
larrow:箭頭向左
rarrow:箭頭向右
round:圓角矩形
round4:橢長(zhǎng)方形
roundtooth:波浪形邊框 1
sawtooth:波浪形邊框 2
square:長(zhǎng)方形
plt.text(1, 1, "y=sinx", weight='bold', color ='b')
這里設(shè)置在坐標(biāo)(1,1)上,即文字下面y=sinx的藍(lán)色字段
2.11. title():添加圖形內(nèi)容的標(biāo)題
plt.title("正弦函數(shù)")
2.12. legend():標(biāo)示不同圖形的文本標(biāo)簽圖例
使用方法:plt.legeng()
圖例在圖中的地理位置:
- best
- upper right
- upper left
- lower left
- lower right
- right
- center left
- center right
- lower center
- upper center
- center
plt.legend(loc="lower left") # 設(shè)置圖例位置
2.13 table():向子圖中添加表格
plt.table(cellText=None, cellColours=None, cellloc='right' ,colWidths=None,
rowLabels=None, rowColours=None, collLabels=None, colColours=None,
collloc='center', loc='bpttpm', bbox=None, edges='closed', **kwargs)
cellText:表格單元格文本。類型為二維字符串列表
cellColours:表格單元格背景色。類型為二位顏色值列表
cellloc:表格單元格文本的對(duì)齊方式。默認(rèn)值為right
left
right
center
colWidths:表格單元格寬度。類型為浮點(diǎn)數(shù)列表
rowLabels:表格行表頭文本。類型為字符串列表
rowColours:表格行表頭背景色。類型為顏色列表
colLabels:表格列表頭文本。類型為字符串列表
colLoc:表格行表頭文本對(duì)齊方式。默認(rèn) right
left
right
center
colColours:表格列表頭背景色。類型為顏色列表
loc:?jiǎn)卧裣鄬?duì)于子圖的位置
bbox:繪制表格的邊界框,如果此參數(shù)不為 None,將會(huì)覆蓋 loc 參數(shù)
edges:?jiǎn)卧襁吘€,該屬性會(huì)影響各類單元格背景色
BRTL
open
closed
horizontal
vertical
3. 完整代碼顯示
import matplotlib.pyplot as plt import numpy as np plt.figure(figsize=(10, 10)) x = np.linspace(0.05, 10, 1000) # 在0.05到10的區(qū)間中,等差選取1000個(gè),端點(diǎn)不屬于 y = np.sin(x) plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False plt.plot(x, y, color='red', ls='-', label='sinx') plt.xlim(1, 10) plt.ylim(-1, 1) plt.xlabel('x軸') plt.ylabel('y軸') plt.grid(ls=':', color='blue') # 設(shè)置網(wǎng)格,顏色為藍(lán)色 plt.axhline(0.5, color='green', lw=2, label="分割線") # 繪制平行于x軸的水平參考線,綠色,名稱 plt.axvspan(xmin=2, xmax=5, facecolor='r', alpha=0.2) # 繪制垂直于x軸的參考區(qū)域 plt.axhspan(ymin=(-3**0.5)/2, ymax=(3**0.5)/2, facecolor='w', alpha=0.2) plt.legend(loc="lower left") # 設(shè)置圖例位置 plt.annotate('local', xy=(2, 1), xytext=(0.5, 0.5), weight='bold', color='red', xycoords="data", arrowprops= dict(arrowstyle="->", connectionstyle='arc3', color='b'), bbox= dict(boxstyle="rarrow", pad=0.6, fc="yellow", ec='k', lw=1, alpha=0.5) ) plt.xticks(list(range(0, 12, 1))) # 調(diào)整刻度范圍和刻度標(biāo)簽 plt.text(1, 1, "y=sinx", weight='bold', color ='b') plt.title("正弦函數(shù)") plt.show()
這串代碼用于顯示中文字符
plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False
無(wú)論畫什么圖,最后都得使用plt.show()用于展示圖片,否則輸出為空
4.折線圖的線條風(fēng)格
-:實(shí)線樣式
--:短橫線樣式
-.:點(diǎn)劃線樣式
::虛線樣式
.:點(diǎn)標(biāo)記
O:圓標(biāo)記
V:倒三角標(biāo)記
^:正三角標(biāo)記
<:左三角標(biāo)記
>:右三角表示
1:下箭頭標(biāo)記13
2:上箭頭標(biāo)記
3:左箭頭標(biāo)記
4:右箭頭標(biāo)記
S:正方形標(biāo)記
p:五邊形標(biāo)記
*:星形標(biāo)記
H:六邊形標(biāo)記
+:加號(hào)標(biāo)記
X:x 標(biāo)記
D:菱形標(biāo)記
|:豎直線標(biāo)記
_:水平線標(biāo)記
5. 常用顏色縮寫
b 藍(lán)色
g 綠色
r 紅色
c 青色
m 品紅色·
y 黃色
k 黑色
w 白色
6.總結(jié)
很多參數(shù)有時(shí)候用不上,但要知道有,存在即合理,不同參數(shù)的作用功能不同,不要任何圖都加太多參數(shù),一般有圖例、標(biāo)題,xy軸的范圍即可。
無(wú)論使用哪個(gè),建議先試試,實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)!??!
到此這篇關(guān)于Python數(shù)據(jù)可視化之matplotlib.pyplot繪圖的基本參數(shù)的文章就介紹到這了,更多相關(guān)Python matplotlib.pyplot繪圖參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python數(shù)據(jù)分析之Matplotlib數(shù)據(jù)可視化
- Python?matplotlib數(shù)據(jù)可視化圖繪制
- python數(shù)據(jù)可視化matplotlib繪制折線圖示例
- Python數(shù)據(jù)分析應(yīng)用之Matplotlib數(shù)據(jù)可視化詳情
- Python中的數(shù)據(jù)可視化matplotlib與繪圖庫(kù)模塊
- Python數(shù)據(jù)可視化之使用matplotlib繪制簡(jiǎn)單圖表
- Python利用matplotlib模塊數(shù)據(jù)可視化繪制3D圖
- Python Matplotlib數(shù)據(jù)可視化模塊使用詳解
相關(guān)文章
Python實(shí)現(xiàn)把回車符\r\n轉(zhuǎn)換成\n
這篇文章主要介紹了Python實(shí)現(xiàn)把回車符\r\n轉(zhuǎn)換成\n,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-04-04Python使用matplotlib時(shí)顯示中文亂碼解決方法(或更改字體)
這篇文章主要給大家介紹了關(guān)于Python使用matplotlib時(shí)顯示中文亂碼的解決方法(或更改字體),在Matplotlib中,中文亂碼問(wèn)題通常出現(xiàn)在圖表的標(biāo)題、標(biāo)簽和刻度上,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12Python光學(xué)仿真數(shù)值分析求解波動(dòng)方程繪制波包變化圖
這篇文章主要為大家介紹了Python光學(xué)仿真通過(guò)數(shù)值分析求解波動(dòng)方程并繪制波包變化圖的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10為Python的web框架編寫MVC配置來(lái)使其運(yùn)行的教程
這篇文章主要介紹了為Python的web框架編寫MVC配置來(lái)使其運(yùn)行的教程,示例代碼基于Python2.x版本,需要的朋友可以參考下2015-04-04