matplotlib教程之基礎(chǔ)

介紹

matplotlib 是python最著名的繪圖庫(kù),它提供了一整套和matlab相似的命令A(yù)PI,十分適合交互式地進(jìn)行制圖。而且也可以方便地將它作為繪圖控件,嵌入GUI應(yīng)用程序中。

它的文檔相當(dāng)完備,并且 Gallery頁(yè)面 中有上百幅縮略圖,打開(kāi)之后都有源程序。因此如果你需要繪制某種類(lèi)型的圖,只需要在這個(gè)頁(yè)面中瀏覽/復(fù)制/粘貼一下,基本上都能搞定

配置屬性

matplotlib所繪制的圖中的每個(gè)組成部分都對(duì)應(yīng)有一個(gè)對(duì)象,我們可以通過(guò)調(diào)用這些對(duì)象的屬性設(shè)置方法set_*或者pyplot的屬性設(shè)置函數(shù)setp設(shè)置其屬性值。

  • set_或plt.setp*
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> x = np.arange(0, 5, 0.1)
>>> line, = plt.plot(x, x*x) 
# plot返回一個(gè)列表,通過(guò)line,獲取其第一個(gè)元素
# 調(diào)用Line2D對(duì)象的set_*方法設(shè)置屬性值
>>> line.set_antialiased(False)
# 關(guān)閉對(duì)象的反鋸齒效果

# 同時(shí)繪制sin和cos兩條曲線,lines是一個(gè)有兩個(gè)Line2D對(duì)象的列表
>>> lines = plt.plot(x, np.sin(x), x, np.cos(x)) 
# 調(diào)用setp函數(shù)同時(shí)配置多個(gè)Line2D對(duì)象的多個(gè)屬性值
>>> plt.setp(lines, color="r", linewidth=2.0)
# 配置多個(gè)Line2D對(duì)象的顏色和線寬屬性
  • get_ plt.getp獲取對(duì)象的屬性值*
>>> line.get_linewidth()
1.0
>>> plt.getp(lines[0], "color") # 返回color屬性
'r'
>>> plt.getp(lines[1]) # 輸出全部屬性
alpha = 1.0
animated = False
antialiased or aa = True
axes = Axes(0.125,0.1;0.775x0.8)
... ...

注:getp函數(shù)只能對(duì)一個(gè)對(duì)象進(jìn)行操作,有兩種操作:
* 指定屬性名:返回對(duì)象的指定屬性的值
* 不指定屬性名:打印出對(duì)象的所有屬性和其值

  • matplotlib 圖表正常顯示中文
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] 
# 正常顯示中文標(biāo)簽設(shè)置
mpl.rcParams['axes.unicode_minus'] = False
# 正常顯示負(fù)號(hào)設(shè)置

為項(xiàng)目設(shè)置maplotlib參數(shù)

  • 在代碼中有兩種方式更改參數(shù)

    • 使用參數(shù)字典(rcParams)
    • 調(diào)用matplotlib.rc()命令,通過(guò)傳入關(guān)鍵字元組,修改參數(shù)

若不想每次都進(jìn)行設(shè)置,可以使用如下命令來(lái)找到當(dāng)前用戶(hù)的配置文件目錄,直接修改配置文件。

import matplotlib
matplotlib.get_data_path()
  • 配置文件包含以下配置項(xiàng):
axex:設(shè)置坐標(biāo)軸邊界和表面的顏色,坐標(biāo)刻度值大小和網(wǎng)格顯示
backend:設(shè)置目標(biāo)TkAgg和GTKAgg
figure:控制dpi、邊界顏色、圖形大小、和子區(qū)(subplot)設(shè)置
font:字體集(font family)、字體大小和樣式設(shè)置
grid:設(shè)置網(wǎng)格顏色和線性
legend:設(shè)置圖例和其中的文本的顯示
line:設(shè)置線條(顏色、線型、寬度等)和標(biāo)記
patch:是填充2D空間的圖形形象,如多邊形和圓、控制線和寬、顏色和抗鋸齒設(shè)置等
savefig:可以對(duì)保存圖形進(jìn)行單獨(dú)設(shè)置,例如設(shè)置渲染的文件背景為白色
verbose:設(shè)置matplotlib在執(zhí)行期間信息輸出,如slient、helpful、debug和debug-annoying
xticks和yticks:為x,y軸的朱刻度和次刻度設(shè)置顏色、大小、方向,以及標(biāo)簽大小

線條相關(guān)屬性標(biāo)記設(shè)置

  • 該表線條的屬性
線條風(fēng)格linestyle或ls 描述 線條風(fēng)格linestyle或類(lèi)似 描述
'_' 實(shí)線 ':' 虛線
'__' 破折線 'None',' ''' 什么都不畫(huà)
'_.' 點(diǎn)劃線
  • 線條標(biāo)記
標(biāo)記maker 描述 標(biāo)記maker 描述
'O' 圓圈 '.' 點(diǎn)
'D' 菱形 's' 正方形
'h' 六邊形1 '*' 星號(hào)
'H' 六邊形2 'd' 小菱形
'_' 水平線 'v' 一角朝下的三角形
'8' 八邊形 '<' 一角朝左的三角形
'p' 五邊形 '>' 一角超右的三角形
',' 像素 '^' 一角朝上的三角形
'+' 加號(hào) '' 豎線
'None','',' ' 無(wú) 'x' X
  • 顏色

可以調(diào)用matplotlib.pyplot.colors()得到matplotlib支持的所有顏色

別名 顏色 別名 顏色
g 藍(lán)色 g 綠色
r 紅色 y 黃色
c 青色 k 黑色
m 洋紅色 w 白色

若顏色不夠用,可以通過(guò)其他兩種方式來(lái)定義顏色值:

* 使用HTML十六進(jìn)制字符串`color = 'eeeff'`
* 也可以傳入一個(gè)歸一化到[0,1]的元組`color = (0.3,0.3,0.4)`
  • 背景色

通過(guò)向matplotlib.pyplot.axes()或者matplotlib.pyplot.subplot()這樣的方法提供一個(gè)axisbg參數(shù),可以指定坐標(biāo)這的背景色 subplot(111,axisbg=(0.1843,0.3098,0.3098)

** matplotlib教程之pyplot模塊**
** matplotlib教程之實(shí)例**

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容