matplotlib 使用簡明教程(七)-樣式定義

定義 matplotlib 樣式文件

官網提供了一份 matplotlibrc 文件的樣例參考,這裏不作贅述:

https://matplotlib.org/tutorials/introductory/customizing.html#sphx-glr-tutorials-introductory-customizing-py

使用樣式文件

默認樣式文件的使用

matplotlib 會在以下地方搜索名稱爲 matplotlibrc 的這個文件,一旦找到就會停止繼續搜索並使用該文件內定義的樣式作爲默認樣式

  1. 當前工作目錄
  2. $MATPLOTLIBRC 定義的文件或文件夾內
  3. 用戶自定義的配置文件位置,可以通過 matplotlib.get_configdir() 來查詢,通過 $MPLCONFIGDIR 環境變量設置
  4. INSTALL/matplotlib/mpl-data/matplotlibrc,其中 INSTALL 是 matplotlib 安裝的位置

可以通過 matplotlib.matplotlib_fname() 查詢當前使用的默認樣式文件

matplotlib 使用某種樣式

plt.style.use()

  • 參數可以是一個 URL 或者路徑,指向自己定義的 mplstyle 文件
  • 可以把自己的 mplstyle 文件放到 mpl_configdir/stylelib 文件夾下,這樣就能通過文件的名稱來使用定義的樣式,其中 mpl_configdir 可以通過 matplotlib.get_configdir() 來查詢
  • 參數也可以是一個列表,這樣就會整合多個 mplstyle 中的樣式

查詢當前可用的樣式列表

plt.style.available

在某個塊內使用某種樣式

plt.style.context() 使用方式見示例:

with plt.style.context(('dark_background')):
    plt.plot(np.sin(np.linspace(0, 2 * np.pi)), 'r-o')
plt.show()

直接定義樣式參數

matplotlib.rcParams 這個全局字典裏存放了大量的樣式定義,可以直接修改。

直接設置 matplotlib.rcParams

mpl.rcParams['group.key'] = valuempl.rc(group, key1 = value2, key2 = value2)

直接設置 matplotlib.rcParams 字典裏某個 group 的某個 key 爲 value,例如:

rc('lines', linewidth=2, color='r')

rcParams['lines.linewidth'] = 2
rcParams['lines.color'] = 'r'

恢復默認的配置狀態

mpl.rcdefaults()matplotlib.rc_file_defaults()

其中 rcdefaults() 是恢復成 matplotlib 內建的樣式,rc_file_defaults() 是恢復成最初導入的 rc 文件定義的樣式。

在各類繪製函數中定義樣式d

matplotlib 的繪製函數有很多,每個函數支持的樣式定義也各不相同,大部分文檔都有說明。
但是有的函數參數,官方文檔也沒有描述清楚。給大家一個小技巧,就是看一下這個函數的返回值類型,看一下這個類型的描述文檔,這裏會有最全的樣式定義。

舉個例子:

>>> help(plt.plot) # 查看 plt.plot 函數幫助
>>> lines = plt.plot([1, 2, 4, 8])
>>> lines
[<matplotlib.lines.Line2D object at 0x11b762390>]
>>> line = lines[0]
>>> help(line) # 查看 matplotlib.lines.Line2D 的幫助

有些時候函數的樣式定義是“複合”的,例如 line 可以定義 linewidth, linestyle, color, marker 等屬性,但是某些函數直接使用了“複合”參數來一次性定義多個屬性。
例如 plt.plot 函數使用 fmt 參數, plt.stem 函數使用了 linefmt, markerfmt, basefmt 參數

這些“複合”參數,可用的內容基本是固定的:

線的樣式 描述
'-' 實線
'--' 槓線
'-.' 點槓線
':' 點線
標記點的樣式 描述
'.'
','
'o'
'v' 下三角
'^' 上三角
'<' 左三角
'>' 油三角
'1' 下三角
'2' 上三角
'3' 左三角
'4' 油三角
's' 方形
'p' 五邊形
'*' 星形
'h' 六邊形1
'H' 六邊形2
'+' 加號
'x' 叉號
'D' 鑽石
'd' 細鑽石
'\|' 短豎線
'_' 短橫線
顏色的樣式 描述
'b' 藍色
'g' 綠色
'r' 紅色
'c' 青色
'm' 品紅
'y' 黃色
'k' 黑色
'w' 白色

系列文章:

matplotlib 使用簡明教程(一)-基礎概念:
https://blog.csdn.net/fenghuizhidao/article/details/79352882
matplotlib 使用簡明教程(二)-常用圖表
https://blog.csdn.net/fenghuizhidao/article/details/83090043
matplotlib 使用簡明教程(三)-一些專業圖表簡介
https://blog.csdn.net/fenghuizhidao/article/details/83090165
matplotlib 使用簡明教程(四)-輔助性元件
https://blog.csdn.net/fenghuizhidao/article/details/83090249
matplotlib 使用簡明教程(五)-畫布、圖表、元素基礎操作
https://blog.csdn.net/fenghuizhidao/article/details/83090320
matplotlib 使用簡明教程(六)-圖像、動畫相關
https://blog.csdn.net/fenghuizhidao/article/details/83090512
matplotlib 使用簡明教程(七)-樣式定義
https://blog.csdn.net/fenghuizhidao/article/details/83090553

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章