我希望更详细地扩展@ImportanceOfBeingErnest 的答案。
如何永久更改默认 Matplotlib 样式
这是一个三步过程,我们 1. 找出 matplotlibrc 文件所在的位置 2. 将该文件复制到另一个位置 3. 添加特定样式的 matplotlibrc 参数。让我们更详细地了解每一个。
- 使用命令查找默认
matplotlibrc 文件在您的计算机中的位置
import matplotlib
print(matplotlib.matplotlib_fname())
- 使用命令将默认
matplotlibrc文件复制到目录 $HOME/.config/matplotlib/matplotlibrc中
cp path_matplotlibrc $HOME/.config/matplotlib/matplotlibrc`
其中path_matplotlibrc是matplotlibrc所在的路径,即path_matplotlibrc是第一步的结果。
- 从其中一个样式文件中复制代码并将其粘贴到“$HOME/.config/matplotlib/matplotlibrc”文件中。
转到目录matplotlib/lib/matplotlib/mpl-data/stylelib(或直接转到matplotlib 的github here 中的同一位置)。从该目录中的.mplstyle 文件之一复制代码。此代码将是matplotlibrc 参数列表,这些参数对应于文件名指示的特定样式。例如,去github,你可以直接复制fivethirtyeight样式的代码,如下所示。
将带有该样式的matplotlibrc 参数的代码粘贴到新文件末尾的“$HOME/.config/matplotlib/matplotlibrcfile. So in this example we would paste the thefivethirtyeightstylematplotlibrc”参数代码的底部。
这样就完成了。只需找出matplotlibrc 文件最初所在的位置,将该文件复制到另一个位置,然后添加特定样式的matplotlibrc 参数即可。很简单。
为什么会这样?
matplotlib 文档 here 解释说:
Matplotlib 使用 matplotlibrc 配置文件来自定义各种属性,我们称之为“rc 设置”或“rc 参数”。您可以控制 Matplotlib 中几乎所有属性的默认值:图形大小和 DPI、线宽、颜色和样式、轴、轴和网格属性、文本和字体属性等等。在启动时读取 matplotlibrc 以配置 Matplotlib...当使用 style.use('/.mplstyle') 给出样式表时,样式表中指定的设置优先于 matplotlibrc 文件中的设置。
每种样式实际上都是参数和属性的集合,它们覆盖了默认的matplotlibrc 文件here。我们可以通过查看目录 matplotlib/lib/matplotlib/mpl-data/stylelib(在 github here 上找到)明确地看到这一点,其中包含每个内置样式的文件。点击目录中的一个文件,我们可以清楚地看到样式只是matplotlibrc参数的列表。 (这就是我们上面展示的,fivethirtyeightmatplotlibrc 参数。)
所以Matplotlib 使用matplotlibrc 文件来确定图形的样式。现在将某种样式的matplotlibrc 设置粘贴到新文件位置如何覆盖默认的matplotlibrc 设置?
Matplotlib 按以下顺序在四个位置查找matplotlibrc 文件:
-
matplotlibrc 在当前工作目录中。它只是查看当前工作目录中是否存在名为 matplotlibrc 的文件。
-
$MATPLOTLIBRC 如果是文件,则为 $MATPLOTLIBRC/matplotlibrc。
- 在 Linux 和 FreeBSD 上,如果您已自定义环境,它会在
.config/matplotlib/matplotlibrc(或 $XDG_CONFIG_HOME/matplotlib/matplotlibrc)中查找。在其他平台上,它会在 .matplotlib/matplotlibrc 中查找。
-
INSTALL/matplotlib/mpl-data/matplotlibrc,其中INSTALL 是您安装matplotlib 软件包的位置。在 Linux 上可能类似于 /usr/lib/python3.7/site-packages,在 Windows 上可能类似于 C:\Python37\Lib\site-packages。
一旦找到matplotlibrc 文件,它就不会搜索任何其他路径。
所以默认情况下matplotlibrc只能在位置四找到。这实际上意味着我们可以通过在位置 1、2 或 3 中创建新的matplotlibrc 来覆盖位置 4 中的默认设置。按照惯例,您应该在可能的最高编号位置创建一个新的matplotlibrc 文件,以便在需要时有更多空间来覆盖该文件。在我刚刚给出的说明中,我们在位置 3 中创建了一个新的 matplotlibrc 文件。这就是我们为什么以及如何覆盖默认的 matplotlibrc 设置,从而创建与现在使用的特定样式相对应的新 matplotlibrc 设置默认情况下。
更多关于Matplotlib样式的信息可以在这里找到。
关于Matplotlib样式
matplotlib 有多种内置样式可供选择。您可以看到here 每种内置样式将如何改变您的绘图外观。要调用特定样式,请使用命令plt.style.use('stylename'),其中stylename 是任意样式名称,要列出所有可用样式,请使用print(plt.style.available)。