目錄
一、圖表樣式概述
(一)、默認圖表樣式
?(二)、圖表樣式修改
1、局部修改
2、全局修改
二、使用顏色
(一)、使用基礎顏色
1、單詞縮寫或單詞表示的顏色
2、十六進制/HTML模式表示的顏色
3、RGB模式表示的顏色
(二)、使用顏色映射表
三、選擇線型
?選擇線條的類型
四、添加數據標記
(一)、添加折線圖或散點圖的數據標記
1、marker參數
(二)、格式字符串
五、設置字體
設置字體樣式
六、切換主題風格
use()函數-----切換圖表的主題風格?
?use(style)
七、填充區域
填充多邊形或曲線之間的區域
1、fill()
2、fill_between()
3、fill_betweenx()
一、圖表樣式概述
(一)、默認圖表樣式
matplotlib在繪圖的過程中會讀取存儲在本地的配置文件matplotlibrc,通過matplotlibrc文件中的缺省配置信息指定圖表元素的默認樣式,完成圖表元素樣式的初始設置。
通過rc_params()函數可以查看matplotlibrc文件中全部的配置項。
配置項按照作用對象的不同主要分為10種配置要素:
?(二)、圖表樣式修改
圖表的樣式可以通過兩種方式進行修改:局部修改和全局修改。
1、局部修改
局部修改的方式是指通過代碼動態地修改matplotlib配置項,此方式用于程序局部定制的需求。若希望局部修改圖表的樣式,可以通過以下任一種方式實現
第1種—通過給繪圖函數或設置圖表元素函數的關鍵字參數傳值來修改圖表的樣式。
第2種—通過“rcParams[配置項]”重新為配置項賦值來修改圖表的樣式。
第3種—通過給rc()函數的關鍵字參數傳值來修改圖表的樣式。
第1種方式只能對某一圖表中指定元素的樣式進行修改,而第2種和第3種方式可以對整個py文件中指定元素的樣式進行修改。
2、全局修改
全局修改的方式是指直接修改matplotlibrc文件的配置項,此方式用于滿足程序全局定制的需求,可以將指定的圖表樣式進行統一修改,無需每次在具體的程序中進行單獨修改。 matplotlib使用matplotlibrc文件的路徑搜索順序:
matplotlib_fname()函數查看當前使用的matplotlibrc文件所在的路徑。
二、使用顏色
(一)、使用基礎顏色
matplotlib的基礎顏色主要有3種表示方式:單詞縮寫或單詞、十六進制或HTML模式、RGB模式。
1、單詞縮寫或單詞表示的顏色
matplotlib中支持使用單詞縮寫或單詞表示的8種顏色:青色、洋紅色、黃色、黑色、紅色、綠色、藍色、白色。
2、十六進制/HTML模式表示的顏色
matplotlib支持使用十六進制或HTML/CSS的形式表示更多的顏色,它將這些顏色存儲在colors.cnames字典中,可通過訪問colors.cnames字典查看全部的顏色。
3、RGB模式表示的顏色
matplotlib支持使用RGB模式的三元組表示顏色,其中元組的第1個元素代表紅色值,第2個元素代表綠色值,第3個元素代表藍色值,且每個元素的取值范圍均是[0,1]。
color = (0.3, 0.3, 0.4)
(二)、使用顏色映射表
import matplotlib.pyplot as plt
plt.colormaps()

顏色映射表分類:?
?可以通過matplotlib.cm.register_cmap()函數將自定義的顏色映射表添加到matplotlib中。
?
三、選擇線型
?選擇線條的類型
圖表中每個線條均具有不同的含義,一般可以通過顏色、寬度、類型來區分線條,其中類型是區分線條的常見方式之一。
matplotlib中內置了4種線條的類型:短虛線、點劃線、長虛線和實線。
在使用pyplot繪制折線圖、顯示網格或添加參考線時,可以將線型取值傳遞給linestyle或ls參數,以選擇其它的線條類型。
plt.plot([1, 2, 3], [3, 4, 5], linestyle='--')
plt.plot([1, 2, 3], [3, 4, 5], ls='--')
四、添加數據標記
數據標記一般指代表單個數據的圓點或其它符號等,用于強數據點的位置,常見于折線圖和散點圖中。
(一)、添加折線圖或散點圖的數據標記
數據標記可以分為填充型數據標記和非填充型數據標記。
1、marker參數
在使用pyplot的plot()或scatter()函數繪制折線圖或散點圖時,可以將標記取值傳遞給marker參數,從而為折線圖或散點圖添加數據標記。
plt.plot([1, 2, 3], [3, 4, 5], marker='*')
(二)、格式字符串
matplotlib在繪制折線圖時,可以使用字符串分別為線條指定顏色、線型和數據標記這三種樣式,但每次都需要分別給參數color、linestyle、marker傳值進行一一設置,使得編寫的代碼過于繁瑣。為此,matplotlib提供了由顏色、標記、線型構成的格式字符串。
格式字符串是快速設置線條基本樣式的縮寫形式的字符串。
'[顏色][標記][線型]'
plt.plot([1, 2, 3], [3, 4, 5], 'mo--')
五、設置字體
設置字體樣式
matplotlib中文本是text模塊的Text類對象,可以通過之前介紹的text()、annotate()、title()等函數進行創建。Text類中提供了一系列設置字體樣式的屬性,包括字體類別、字體大小、字體風格、字體角度等。
也可以作為text()、annotate()、title()函數的同名關鍵字參數,以便用戶在創建文本的同時設置字體的樣式。
六、切換主題風格
matplotlib.style模塊中內置了一些圖表的主題風格,通過切換不同的主題風格以滿足用戶的不同需求。
所有的主題風格都存儲于matplotlib配置文件夾的stylelib目錄中,可以通過訪問available變量查看所有可用的主題風格。
import matplotlib.style as ms
print(ms.available)
use()函數-----切換圖表的主題風格?
?use(style)
以上函數的參數style表示圖表的主題風格,它可以接收matplotlib中所有可用的主題風格的字符串,也可以接收“default”來恢復默認的主題風格。
七、填充區域
matplotlib中提供了多個函數用于填充多邊形或區域,分別為fill()、fill_between()和fill_betweenx(),其中fill()函數用于填充多邊形,fill_between()或fill_betweenx()函數分別用于填充兩條水平曲線或垂直曲線之間的區域。
填充多邊形或曲線之間的區域
1、fill()
fill(*args,?data=None,?facecolor, edgecolor, linewidth, **kwargs)
*args:表示x坐標、y坐標或顏色的序列。
acecolor:表示填充的背景顏色。
edgecolor:表示邊框的顏色。
linewidth:表示邊框的寬度。
2、fill_between()
fill_between(x,?y1,?y2=0,?where=None,?interpolate=False,?step=None,? data=None,?**kwargs)
?x:表示x軸坐標的序列。
y1:表示第一條曲線的y軸坐標。
y2:表示第二條曲線的y軸坐標。
where:布爾值,表示要填充區域的條件。
y1>y2說明第一條曲線位于第二條曲線上方時填充;y1<y2說明第二條曲線位于第一條曲線上方時填充
3、fill_betweenx()
fill_betweenx(y,?x1,?x2=0,?where=None,?step=None,?interpolate=False,?data=None,?
**kwargs)
?y:表示y軸坐標的序列。
x1:表示第一條曲線的x軸坐標。
x2:表示第二條曲線的x軸坐標。
where:布爾值,表示要填充區域的條件。
x1>x2說明第一條曲線位于第二條曲線右方時填充;y1<y2說明第二條曲線位于第一條曲線右方時填充。