Matplotlib繪圖基礎(chǔ)之畫布詳解
Matplotlib 庫(kù)是一個(gè)用于數(shù)據(jù)可視化和繪圖的 Python 庫(kù)。
它提供了大量的函數(shù)和類,可以幫助用戶輕松地創(chuàng)建各種類型的圖表,包括直方圖、箱形圖、散點(diǎn)圖、餅圖、條形圖和密度圖等。
使用 Matplotlib 的過(guò)程中,遇到的難點(diǎn)并不在于繪制各類的圖形,因?yàn)槊糠N圖形都有其對(duì)應(yīng)的API。
難點(diǎn)在于對(duì)繪制的圖形進(jìn)行調(diào)整,這些調(diào)整包括:
- 圖形的大小
- 多個(gè)圖形的組合
- 坐標(biāo)軸的方向,刻度的精度
- 圖形的顏色和字體
等等。
進(jìn)行這些調(diào)整需要對(duì) Matplotlib 的繪圖機(jī)制和其中的主要元素有個(gè)整體的了解。
本篇首先整體介紹下Matplotlib繪制的圖形中的主要元素,然后重點(diǎn)介紹下其中第一個(gè)重要的元素--畫布。
1. 主要元素
下面繪制一個(gè)簡(jiǎn)單的圖形來(lái)演示Matplotlib繪圖時(shí)的主要元素。
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
%matplotlib inline
#繪制一個(gè)展示主要元素的圖
x = np.array(range(0, 8))
y1 = np.sin(x)
fig = plt.figure()
fig.set_size_inches(10,4)
fig.set_facecolor('lightgreen')
fig.suptitle("整個(gè)圖形的總標(biāo)題")
fig.subplots_adjust(wspace=0.3)
ax1 = fig.add_subplot(121)
ax1.plot(x, y1)
ax1.set_title("圖1 標(biāo)題")
ax1.set_xlabel("圖1--x軸")
ax1.set_ylabel("圖1--y軸")
ax2 = fig.add_subplot(122)
y2 = np.cos(x)
ax2.plot(x, y1)
ax2.plot(x, y2)
ax2.set_title("圖2 標(biāo)題")
ax2.set_xlabel("圖2--x軸")
ax2.set_ylabel("圖2--y軸")
ax2.legend(labels=["sin", "cos"])
fig.show()
上例中,我們繪制了2個(gè)子圖。主要的元素包括,圖形的大小,圖形的標(biāo)題(主標(biāo)題和子圖標(biāo)題),坐標(biāo)軸(軸標(biāo)簽和刻度),圖例,子圖中曲線(這里可以根據(jù)情況換成其他圖形,比如柱狀圖,散點(diǎn)圖等等)。
上面的示例代碼不用太關(guān)心,這里只是為了顯示Matplotlib的主要元素。
后續(xù)的文章會(huì)介紹各個(gè)主要元素的常用屬性,最終的目的是能夠靈活的繪制出符合顯示要求的圖形,而不僅僅只是繪制出圖形。
本篇介紹的主要元素是畫布。
2. 畫布
畫布是其他所有的元素的載體,可以說(shuō)是最重要,也是最容易被忽視的元素。
繪制圖形之前,第一件事就是創(chuàng)建畫布。
2.1. 主要屬性
創(chuàng)建畫布之后,一般主要用到的屬性是調(diào)整畫布的大小和顏色。
Matplotlib畫布的大小通過(guò)設(shè)置英寸和dpi來(lái)實(shí)現(xiàn),dpi表示一英寸有多少像素。
2.1.1. 畫布大小
比如下面的示例:
fig = plt.figure(figsize=[6, 3], dpi=100)
fig.suptitle("標(biāo)題")
x = np.array(range(0, 8))
y = np.sin(x)
plt.plot(x, y)
修改dpi=200,圖形明顯變大和清晰。
fig = plt.figure(figsize=[6, 3], dpi=200)

2.1.2. 畫布顏色
除了大小,設(shè)置畫布的顏色也是比較常用的。
顏色主要有兩種,背景色和邊框顏色(默認(rèn)的邊框?qū)挾仁?,所以要設(shè)置邊框顏色時(shí),別忘了設(shè)置邊框的寬度)。
比如:下面示例設(shè)置了背景色淺綠色,邊框?qū)挾?0,顏色紅色。
fig = plt.figure(facecolor="lightgreen",
edgecolor="red",
linewidth=10)
fig.suptitle("標(biāo)題")
x = np.array(range(0, 8))
y = np.sin(x)
plt.plot(x, y)
2.2. 主要方法
除了屬性,畫布還有幾個(gè)方法也是經(jīng)常使用的。
2.2.1. 設(shè)置標(biāo)題
上面的示例中已經(jīng)包含了,也就是 suptitle() 方法。
2.2.2. 添加子圖
添加子圖用 add_subplot() 方法,這個(gè)方法的參數(shù)一般是三個(gè)數(shù)組 xyz,x表示有幾行,y表示有幾列,z表示是第一個(gè)子圖。
比如:一行兩列2個(gè)圖
fig = plt.figure() fig.add_subplot(121) fig.add_subplot(122)

比如:2行一列2個(gè)圖:
fig = plt.figure() fig.add_subplot(211) fig.add_subplot(212)

比如:2行2列4個(gè)圖:
fig = plt.figure() fig.add_subplot(221) fig.add_subplot(222) fig.add_subplot(223) fig.add_subplot(224)

2.2.3. 保存圖像
畫布還有個(gè)重要的功能就是把顯示的圖形保存下來(lái),即 savefig() 方法。
可以把繪制的圖形保存到磁盤,用于分享或者制作報(bào)告。
fig.savefig("d:/share/image.png")3. 總結(jié)回顧
畫布讓我們可以整體上設(shè)置圖形的質(zhì)量和排版,分析和作圖過(guò)程中雖然不用過(guò)多考慮它,但是最終如果要出報(bào)告和文檔時(shí),畫布的設(shè)置就會(huì)變得重要。
畫布是繪圖的第一步,接下來(lái)這個(gè)系列會(huì)逐步介紹 Matplotlib的其他主要元素。
到此這篇關(guān)于Matplotlib繪圖基礎(chǔ)之畫布詳解的文章就介紹到這了,更多相關(guān)Matplotlib畫布內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python自動(dòng)重新加載模塊詳解(autoreload module)
這篇文章主要介紹了Python自動(dòng)重新加載模塊詳解(autoreload module),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
一文教你用python編寫Dijkstra算法進(jìn)行機(jī)器人路徑規(guī)劃
迪杰斯特拉(Dijkstra)算法是典型最短路徑算法,用于計(jì)算一個(gè)節(jié)點(diǎn)到其他節(jié)點(diǎn)的最短路徑,這篇文章主要給大家介紹了關(guān)于利用python編寫Dijkstra算法進(jìn)行機(jī)器人路徑規(guī)劃的相關(guān)資料,需要的朋友可以參考下2021-08-08
Python面試之os.system()和os.popen()的區(qū)別詳析
Python調(diào)用Shell,有兩種方法:os.system(cmd)或os.popen(cmd)腳本執(zhí)行過(guò)程中的輸出內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于Python面試之os.system()和os.popen()區(qū)別的相關(guān)資料,需要的朋友可以參考下2022-06-06
Python調(diào)用系統(tǒng)底層API播放wav文件的方法
這篇文章主要介紹了Python調(diào)用系統(tǒng)底層API播放wav文件的方法,涉及Python使用pywin32調(diào)用系統(tǒng)底層API讀取與播放wav文件的相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
詳解python并發(fā)獲取snmp信息及性能測(cè)試
本篇文章主要介紹了詳解python并發(fā)獲取snmp信息及性能測(cè)試,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03
Pytorch Tensor的統(tǒng)計(jì)屬性實(shí)例講解
今天小編就為大家分享一篇Pytorch Tensor的統(tǒng)計(jì)屬性實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
python批量設(shè)置多個(gè)Excel文件頁(yè)眉頁(yè)腳的腳本
這篇文章主要介紹了python批量設(shè)置多個(gè)Excel文件頁(yè)眉頁(yè)腳的源碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03
在Python反編譯中批量pyc轉(zhuǎn)?py的實(shí)現(xiàn)代碼
這篇文章主要介紹了在Python反編譯中批量pyc轉(zhuǎn)?py的實(shí)現(xiàn)代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02

