Matplotlib rcParams 运行时配置详解与修改还原指南

Luna
Luna
发布时间:2026-10-15 | 2人浏览过
原创

本文深入解析 Matplotlib 的运行时配置(rc)机制,介绍如何通过修改默认或自定义 matplotlibrc 文件、直接操作 rcParams 对象来调整图形属性。详细对比三种修改方法(rc、rcParams 赋值、update)的区别,并提供还原默认配置的三种标准方式,帮助开发者灵活控制绘图风格。

什么是运行时配置(Runtime Configuration,rc)

Matplotlib 允许用户通过 matplotlibrc 配置文件来自定义图表的各项属性,这一机制被称为 rc 配置或 rc 参数(rcParams)。利用 rc 参数,用户可以修改 Matplotlib 中绝大多数属性的默认设置,涵盖窗口尺寸、每英寸点数(dpi)、线条粗细、颜色、线型、坐标轴样式、网格线、文本及字体等多个方面。

运行时配置的默认值

这些运行时配置的默认值存储在默认的 matplotlibrc 文件中。

matplotlibrc 文件与 rcParams 的关系

rcParams 是 RcParams 类的实例,其结构类似字典,专门用于处理 Matplotlib 的默认运行时配置,它是 Matplotlib 模块中的一个全局变量。当导入 Matplotlib 模块时,matplotlibrc 文件中的所有 rc 参数会被加载并存储在 matplotlib.rcParams 中。

源码如下:


rcParamsDefault = _rc_params_in_file(
  cbook._get_data_path("matplotlibrc"),
  # Strip leading comment.
  transform=lambda line: line[1:] if line.startswith("#") else line,
  fail_on_error=True)
dict.update(rcParamsDefault, rcsetup._hardcoded_defaults)
rcParams = RcParams() # The global instance.
dict.update(rcParams, dict.items(rcParamsDefault))
dict.update(rcParams, _rc_params_in_file(matplotlib_fname()))

修改运行时配置参数的方法

可以通过 rc 文件进行修改:既可以是修改默认的 matplotlibrc 文件,也可以是指定一个自定义的 rc 文件。

修改默认的 matplotlibrc 文件。

指定自定义的 rc 文件。


matplotlib.rc_file(fname, *, use_default_template=True)

通过 rcParams 对象:直接修改 rcParams 对象。这种方法相对灵活,具体的修改方法有以下三种:

  • matplotlib.rc(group, **kwargs)
  • rcParams[group.params]
  • rcParams.update()

前两种方法是等价的,第三种方法不支持缩写和分组操作。


  #第一种方法1
  rc('lines', linewidth=2, color='r')
  #第一种方法2
  font = {'linewidth' : 2,
    'color'  : 'r'}
  rc('lines', **font) 
  #第二种方法
  rcParams['lines.linewidth'] = 2
  rcParams['lines.color'] = 'r'
  #第三种方法
  rcParams.update({"lines.linewidth": 2,'lines.color': 'r'})

还原修改运行时配置默认值的方法

  • matplotlib.rcdefaults():根据 Matplotlib 内置的默认样式来还原 rcParams 对象。
  • matplotlib.rc_file_defaults():根据 Matplotlib 当前加载的 rc 文件的源文件来还原 rcParams 对象。
  • matplotlib.style.use(default):加载默认样式。

到此这篇关于 Matplotlib 运行时配置(Runtime Configuration,rc)参数 rcParams 解析的文章就介绍到这了,更多相关 Matplotlib 配置 rcParams 内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表