为Matplotlib创建默认值集合

6 投票
2 回答
2322 浏览
提问于 2025-04-16 07:45

我经常需要为自己的研究制作图表,默认的设置都挺好的,但有时候我需要制作适合演讲或展示的图表;为了让大家更容易阅读,我会手动把所有的字体大小调得大一点

plot(xdata, ydata)
xlabel("x-axis data", fontsize=20)
ax = gca()
for labeltick in ax.xaxis.get_majorticklabels() + ax.yaxis.get_majorticklabels():
        labeltick.set_fontsize(15)

等等。

多亏了文档和像这样的提问,我知道在启动matplotlib时如何控制默认的绘图参数。我考虑写一个简单的脚本(mpl_defaults.py):

import matplotlib as mpl
def plot_for_talks():
    mpl.rcParams['font.size'] = 20
    mpl.rcParams['figure.subplot.left'] = .2
    mpl.rcParams['figure.subplot.right'] = .8
    mpl.rcParams['figure.subplot.bottom'] = .2
    mpl.rcParams['figure.subplot.top'] = .8

然后我的绘图代码就可以直接包含

import mpl_defaults
plot_for_talks()

我的问题是:有没有更合适的方法来做到这一点?也许已经有内置的功能可以使用?

2 个回答

4

如果你通过文件夹来管理不同的展示模式,可以在每个项目的文件夹里放一个matplotlibrc文件。这样,matplotlib就会使用当前文件夹里的那个文件

4

试试这个:

import matplotlib as mpl    
mpl.rc('figure.subplot', left=.2, right=.8, bottom=.2, top=.8)

这里面应该有一个"site-packages/matplotlib/mpl-data/matplotlibrc"的文件,这在文档5.1里有说明。

你可以用mpl.matplotlib_fname()这个命令来找到你的rc文件的路径,然后修改它,这样设置就会一直生效。

撰写回答