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