我喜欢matplotlib中可用的ggplot样式。因此,当我处于交互式会话中时,我通常执行以下操作:
import matplotlib.pyplot as plt
plt.style.use('ggplot')
这样可以产生非常好的样式。有没有一种简单的方法使这个设置持久化,这样我就不需要每次启动Python时都输入上述命令?
我喜欢matplotlib中可用的ggplot样式。因此,当我处于交互式会话中时,我通常执行以下操作:
import matplotlib.pyplot as plt
plt.style.use('ggplot')
这样可以产生非常好的样式。有没有一种简单的方法使这个设置持久化,这样我就不需要每次启动Python时都输入上述命令?
# from http://www.huyng.com/posts/sane-color-scheme-for-matplotlib/
patch.linewidth: 0.5
patch.facecolor: 348ABD # blue
patch.edgecolor: EEEEEE
patch.antialiased: True
font.size: 10.0
axes.facecolor: E5E5E5
axes.edgecolor: white
axes.linewidth: 1
axes.grid: True
axes.titlesize: x-large
axes.labelsize: large
axes.labelcolor: 555555
axes.axisbelow: True # grid/ticks are below elements (e.g., lines, text)
axes.prop_cycle: cycler('color', ['E24A33', '348ABD', '988ED5', '777777', 'FBC15E', '8EBA42', 'FFB5B8'])
# E24A33 : red
# 348ABD : blue
# 988ED5 : purple
# 777777 : gray
# FBC15E : yellow
# 8EBA42 : green
# FFB5B8 : pink
xtick.color: 555555
xtick.direction: out
ytick.color: 555555
ytick.direction: out
grid.color: white
grid.linestyle: - # solid line
figure.facecolor: white
figure.edgecolor: 0.50
你可以添加
use('ggplot')
到 .../lib/python2.7/site-packages/matplotlib-2.0.0-py2.7-linux-x86_64.egg/matplotlib/style/__init__.py
您的具体路径可能略有不同。
我希望能够更详细地扩展@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是第一步的结果。
进入目录matplotlib/lib/matplotlib/mpl-data/stylelib
(或者直接在matplotlib
的github 这里找到相同的位置)。从该目录中的一个.mplstyle
文件中复制代码。此代码将是一个matplotlibrc
参数列表,对应于由文件名指示的特定样式。例如,访问github,您可以只复制fivethirtyeight
样式的代码,它看起来像这样。
将具有该样式的matplotlibrc
参数的代码粘贴到“$HOME/.config/matplotlib/matplotlibrc”文件的底部。因此,在此示例中,我们将在新文件的末尾粘贴上述所示的fivethirtyeight
样式matplotlibrc
参数代码。
就这样,你完成了。只需找出matplotlibrc
文件最初的位置,将该文件复制到另一个位置,并添加特定样式的matplotlibrc
参数即可。非常简单。
matplotlib
文档here解释:
每种样式实际上都是一组参数和属性,这些参数和属性会覆盖默认的matplotlibrc
文件,该文件可以在此处找到。我们可以通过查看目录matplotlib/lib/matplotlib/mpl-data/stylelib
(可以在此处的github上找到)来明确地看到这一点,该目录包含每个内置样式的文件。单击目录中的文件,我们可以清楚地看到样式只是matplotlibrc
参数列表。(这就是我们上面展示的fivethirtyeight
matplotlibrc
参数。)
因此,Matplotlib
使用matplotlibrc
文件来确定图形的样式。那么将某种样式的matplotlibrc
设置粘贴到新文件位置如何覆盖默认的matplotlibrc
设置呢?
Matplotlib
按以下顺序在四个位置查找matplotlibrc
文件:
matplotlibrc
的文件是否存在。$MATPLOTLIBRC
中查找,否则在$MATPLOTLIBRC/matplotlibrc
中查找。.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
只能在第四个位置找到。这意味着我们可以通过在第一、二或三个位置创建新的 matplotlibrc
文件来覆盖在位置4中发现的默认设置。按照惯例,应该在可能的最高编号位置创建一个新的 matplotlibrc
文件,以便在需要时可以有更多的替换空间。在我刚才给出的说明中,我们在位置3中创建了一个新的 matplotlibrc
文件。这就是我们如何覆盖默认的matplotlibrc
设置,从而创建了与特定样式对应的新的matplotlibrc
设置,并将其用作默认设置。
关于Matplotlib
样式的更多信息可以在这里找到。
Matplotlib
样式Matplotlib
有几种内置样式可供选择。您可以在这里看到每个内置样式将如何改变您的图表外观。要调用特定的样式,请使用命令plt.style.use('stylename')
,其中stylename
是任意样式名称,要列出所有可用样式,请使用print(plt.style.available)
。
原则上,@Roelants的回答是正确的。在这里稍微详细一些:
matplotlibrc
文件,如此处所讨论,并备份它。ggplot.mplstyle
(可能与matplotlibrc
文件相比位于子文件夹中)。ggplot.mplstyle
的内容替换matplotlibrc
文件的内容。从那时起,默认样式将与由ggplot样式定义的样式相同。
import matplotlib; matplotlib.style.use("ggplot")
。 - ImportanceOfBeingErnest