首页 > Matplotlib 阅读数:42

Matplotlib参数配置

在绘制图形时,有许多需要配置的属性,如颜色、字体、线型等。但是,在许多情况下,这些属性是直接采用了 Matplotlib 的默认配置。Matplotlib 将默认配置保存在“matplotlibrc”配置文件中,通过修改配置文件,可修改图表的默认样式,这称之为 rc 配置或者 rc 参数。

Matplotlibrc 配置文件

在 Matplotlib 中可以使用多个“matplotlibrc”配置文件,它们的搜索顺序如下,顺序靠前的配置文件将会被优先采用。

1) 当前路径:程序的当前路径。

2) 用户配置路径:在用户文件夹的“.matplotlib”目录下,可通过环境变量 MATPLOT LIBRC 修改它的位置。

3) 系统配置路径:保存在 Matplotlib 的安装目录下的 mpl-data 中。

通过下面的代码可以获取用户配置路径和系统配置路径。
# -*- coding: utf-8 -*-
import matplotlib
print(matplotlib.get_configdir()) #获取用户配置路径
print(matplotlib.matplotlib_fname()) #获得系统配置路径

“matplotlibrc”配置文件实际上是一个字典。在该字典中,为了对众多的配置进行区分,关键字可以用点分开。

如果需要读取配置文件中的所有参数及其参数值,可在 Matplotlib 模块载入时去调用 rc_params() 函数,并把得到的配置字典保存到 rcParams 变量中,其代码如下:
# -*- coding: utf-8 -*-
import matplotlib
#读取配置文件中的所有参数及其参数值
print(matplotlib.rc_params())

输出结果部分值:
agg.path.chunksize: 0
animation.avconv_args: []

设置动态rc参数

1. 直接修改 rcParams 变量值

当配置字典保存到 rcParams 变量后,Matplotlib 将使用 rcParams 变量中的配置进行绘图。用户可以直接修改该字典中的配置,所做的改变会反映到此后所绘制的图形中。

【例 1】绘制一条斜线,并设置所绘制的斜线标记字符(lines.marker)为“v”一角朝下的三角形。

其程序代码 test1.py 如下。
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import matplotlib
#读取配置文件中的所有参数及其参数值
matplotlib.rc_params()
#设置标记符lines.marker为"v"一角朝下的三角形
plt.rcParams["lines.marker"] = "v"
plt.plot([1,2,3])
plt.show()

2. 使用 rc 函数修改参数配置

使用 rc 函数可以修改“matplotlibrc”配置文件中的参数,rc 函数的语法格式如下:

matplotlib.rc(group,**kwargs)

函数中的参数说明如下:
  • group:为 rc 参数的分组。线条常用的 rc 参数名称、解释与取值见表 1;

表 1:线条常用的 rc 参数名称、解释与取值
rc 参数名称 解释 取值
lines.linewidth 线条宽度 取 0〜10 之间的数直 默认为 1.5
lines.linestyle 线条样式 可取实线“-”、长虚线“一”、点线“— · ”短虚线":” 4 种,默认 为实线“—”
lines.marker 线条上点的形状 可取“.” o”"v" “^”等 20 多种,默认为 None
lines.markersize 点的大小 取 0〜10 之间的数值,默认为 1

  • kwargs:为字典属性名称/值对。

其中,lines.marker 参数的 20 种取值及其代表的意义见表 2。

表 2:lines.marker 参数的取值及其代表的意义
lines.marker 参数取值 意义 lines.marker 参数取值 意义
o 圆圈 .
D 菱形 S 正方形
h 六边形 1 * 星号
H 六边形 2 d 小菱形
- 水平线 v —角朝下的三角形
8 八边形 < 一角朝左的三角形
P 五边形 > —角朝右的三角形
像素 ^ 一角朝上的三角形
+ 加号 \ 竖线
None X X

【例 2】绘制一条斜线,设置所绘制的斜线标记符(lines.marker)为“o”圆圈,线宽为 3,线型为虚线,并设置字符的字体、样式和大小。

其程序代码 test2.py 如下。
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rc("lines", marker="o", linewidth=3,linestyle='--
font = {'family' : 'monospace',
        'style' : 'italic',
        'size' : '16'}

matplotlib.rc("font", **font)
plt.title("rc() Example")
plt.plot([1,2,3])
plt.show()

修改了配置文件中的参数后,如果想恢复到默认的配置(Matplotlib 载入时从配置文件读入的配置),可以调用 rcdefaults() 函数,函数的语法格式如下:

matplotlib.rcdefaults()


如果通过文本编辑器修改了配置文件,希望重新载入最新的配置文件,则调用 update() 函数,函数的语法格式如下:

matplotlib.rcParams.update(matplotlib.rc_params())