Matplotlib繪圖基礎(chǔ)之配置參數(shù)詳解
Matplotlib
提供了大量配置參數(shù),這些參數(shù)可以但不限于讓我們從整體上調(diào)整通過(guò) Matplotlib
繪制的圖形樣式,這里面的參數(shù)還有很多是功能性的,和其他工具結(jié)合時(shí)需要用的配置。
通過(guò)plt.rcParams
,可以查看所有的配置信息:
import matplotlib.pyplot as plt print(len(plt.rcParams)) #運(yùn)行結(jié)果 312
總共居然有312
個(gè)配置選項(xiàng)。
一一介紹所有的選項(xiàng)意義不大,具體可參考官方文檔:https://matplotlib.org/stable/api/matplotlib_configuration_api.html#matplotlib.rcParams
本篇只是拋磚引玉,介紹幾個(gè)常用的參數(shù),目的是了解參數(shù)的使用方法和產(chǎn)生的效果。
1. 坐標(biāo)軸
首先是坐標(biāo)軸相關(guān)的配置,通過(guò)下面的代碼可以看看有多個(gè)關(guān)于坐標(biāo)軸的配置:
import matplotlib.pyplot as plt count = 1 for key, val in plt.rcParams.items(): #只打印以 axes 開(kāi)頭的配置 if key.startswith("axes"): print(key, " = ", val) count += 1 #相關(guān)的配置有 38 個(gè) print(f"axes 相關(guān)設(shè)置有: {count} 個(gè)")
一共有38
個(gè)關(guān)于坐標(biāo)軸的配置。
挑選一些配置,看看修改前后的效果:
x = np.linspace(0, 10, 100) y1 = np.sin(x) y2 = np.cos(x) plt.rcParams.update(plt.rcParamsDefault) fig = plt.figure() ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) ax.plot(x, y1, label="sin") ax.plot(x, y2, label="cos") ax.legend() plt.show()
修改了背景色,邊框和網(wǎng)格:
x = np.linspace(0, 10, 100) y1 = np.sin(x) y2 = np.cos(x) plt.rcParams.update(plt.rcParamsDefault) plt.rc("axes", facecolor="#FFE4C4", edgecolor="#A52A2A", grid=True) fig = plt.figure() ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) ax.plot(x, y1, label="sin") ax.plot(x, y2, label="cos") ax.legend() plt.show()
2. 網(wǎng)格
關(guān)于網(wǎng)格,除了通過(guò)坐標(biāo)軸來(lái)設(shè)置,它還有自己的一些專(zhuān)門(mén)的設(shè)置選項(xiàng):
count = 1 for key, val in plt.rcParams.items(): if key.startswith("grid"): print(key, " = ", val) count += 1 print(f"grid 相關(guān)設(shè)置有: {count} 個(gè)")
總共有5
個(gè)相關(guān)的配置,設(shè)置看看效果。
代碼和上面類(lèi)似,這里只把設(shè)置部分的代碼列出來(lái)。
plt.rcParams.update(plt.rcParamsDefault) plt.rc("axes", grid=True) plt.rc("grid", linestyle="solid", linewidth=2, color="g", alpha=0.5)
這是修改后的效果,修改前的效果和上一節(jié)中的一樣。
3. 刻度
刻度相關(guān)的參數(shù)如下:
xcount = 1 ycount = 1 for key, val in plt.rcParams.items(): if key.startswith("xtick"): print(key, " = ", val) xcount += 1 if key.startswith("ytick"): print(key, " = ", val) ycount += 1 print(f"xtick 相關(guān)設(shè)置有: {xcount} 個(gè)") print(f"ytick 相關(guān)設(shè)置有: {ycount} 個(gè)")
X軸刻度和Y軸刻度的相關(guān)設(shè)置各有21
個(gè)。
設(shè)置方法和效果如下:
plt.rcParams.update(plt.rcParamsDefault) plt.rc("xtick", color="g", direction="in") plt.rc("ytick", color="r")
上面的示例分別設(shè)置X軸和Y軸的顏色,以及X軸的direction
,direction="in"
表示刻度的小短線在圖形內(nèi)部,
Y軸沒(méi)設(shè)置這個(gè)屬性,它的刻度線是在圖形外的。
4. 顏色列表
我們繪制圖形的時(shí)候,一個(gè)圖形中有多個(gè)曲線時(shí),每個(gè)曲線默認(rèn)就會(huì)使用不同的顏色。
這是因?yàn)榕渲弥杏幸粋€(gè)默認(rèn)的顏色列表,繪制多個(gè)圖形時(shí),會(huì)依次使用其中的顏色。
print(plt.rcParams["axes.prop_cycle"]) #運(yùn)行結(jié)果 cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])
如果去查下顏色編碼的話,可以看出,前兩個(gè)顏色就是藍(lán)色和紅色。
所以上面的示例中的兩條曲線都是藍(lán)色和紅色。
修改下這個(gè)默認(rèn)的顏色列表,看看變化效果:
x = np.linspace(0, 10, 100) y1 = np.sin(x) y2 = np.cos(x) from matplotlib import cycler colors = cycler( "color", ["#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf"] ) plt.rcParams.update(plt.rcParamsDefault) plt.rc("axes", prop_cycle=colors) fig = plt.figure() ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) ax.plot(x, y1, label="sin") ax.plot(x, y2, label="cos") ax.legend() plt.show()
改變顏色列表之后,兩條曲線的顏色都變了。
繪制曲線或者其他圖形時(shí),其實(shí)是有參數(shù)可以指定顏色的,為什么還需要這個(gè)顏色列表的配置?
這是因?yàn)?,如果我們能夠確定整體報(bào)告的風(fēng)格,那么就可以在一開(kāi)始就根據(jù)報(bào)告的風(fēng)格設(shè)置好這個(gè)顏色列表,
然后繪制各種圖形時(shí)就不需要指定顏色,極大簡(jiǎn)化后續(xù)的代碼,也提高了代碼的可維護(hù)性。
5. 總結(jié)
在配置 rcParams
時(shí),我們可以根據(jù)需要修改各種選項(xiàng),以達(dá)到更好的顯示效果。
但需要注意的是,過(guò)多地修改 rcParams
可能會(huì)導(dǎo)致繪圖緩慢或出現(xiàn)其他問(wèn)題,因此需要根據(jù)實(shí)際情況進(jìn)行合理的配置。
到此這篇關(guān)于Matplotlib繪圖基礎(chǔ)之配置參數(shù)詳解的文章就介紹到這了,更多相關(guān)Matplotlib配置參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于Python dict存中文字符dumps()的問(wèn)題
這篇文章主要介紹了關(guān)于Python dict存中文字符dumps()的問(wèn)題,本文給大家分享問(wèn)題及解決方案,給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10Python中的魔術(shù)方法Magic?Methods使用實(shí)例全面指南
在Python中,魔術(shù)方法Magic?Methods是一種特殊的方法,它們以雙下劃線開(kāi)頭和結(jié)尾,如__init__、__str__等,這些方法允許定制類(lèi)的行為,使得對(duì)象更具有靈活性和可定制性,本文將深入探討Python中一些常用的魔術(shù)方法,以及如何使用它們來(lái)定制類(lèi)與對(duì)象2024-01-01Python 檢查數(shù)組元素是否存在類(lèi)似PHP isset()方法
isset方法來(lái)檢查數(shù)組元素是否存在,在Python中無(wú)對(duì)應(yīng)函數(shù),在Python中一般可以通過(guò)異常來(lái)處理數(shù)組元素不存在的情況,而無(wú)須事先檢查2014-10-10Python中如何實(shí)現(xiàn)MOOC掃碼登錄
這篇文章主要介紹了Python中如何實(shí)現(xiàn)MOOC掃碼登錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01python模塊詳解之pywin32使用文檔(python操作windowsAPI)
pywin32是一個(gè)第三方模塊庫(kù),主要的作用是方便python開(kāi)發(fā)者快速調(diào)用windows API的一個(gè)模塊庫(kù),這篇文章主要給大家介紹了關(guān)于python模塊詳解之pywin32使用文檔的相關(guān)資料,文中將python操作windowsAPI介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01PyTorch搭建ANN實(shí)現(xiàn)時(shí)間序列風(fēng)速預(yù)測(cè)
這篇文章主要為大家介紹了PyTorch搭建ANN實(shí)現(xiàn)時(shí)間序列風(fēng)速預(yù)測(cè),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05使用PyCharm創(chuàng)建Django項(xiàng)目及基本配置詳解
pycharm是個(gè)很不錯(cuò)的python開(kāi)發(fā)工具,大大縮短了python項(xiàng)目的創(chuàng)建時(shí)間以及調(diào)試時(shí)間。這篇文章主要介紹了使用PyCharm創(chuàng)建Django項(xiàng)目及基本配置詳解,pycharm是個(gè)很不錯(cuò)的python開(kāi)發(fā)工具,大大縮短了python項(xiàng)目的創(chuàng)建時(shí)間以及調(diào)試時(shí)間2018-10-10