如何为matplotlib中的一个图设置局部rcParams或rcParams

11 投票
1 回答
5828 浏览
提问于 2025-04-18 00:53

我正在用 python 写一个绘图函数,使用的是 matplotlib 这个库。用户可以指定一些选项,比如“刻度线”。最简单的方法是修改 rcParams,但这些设置是全局的,也就是说一旦调用了这个绘图函数,之后所有的新图都会有刻度线。

有没有办法只为某一个图设置绘图的默认值呢?

或者至少有没有好的方法可以为一个绘图函数修改属性,然后再把它们改回之前的值(不一定非得是 rcdefaults)?

1 个回答

22

你可以在一个with语句中使用rc_context函数,这样可以用你提供的字典来设置一些参数。在这个with语句块下面的代码会使用这些参数,等到代码块执行完后,参数会自动恢复到之前的状态。举个例子:

with plt.rc_context({"axes.grid": True, "grid.linewidth": 0.75}):
    f, ax = plt.subplots()  # Will make a figure with a grid
    ax.plot(x, y)

f, ax = plt.subplots()  # Will make a figure without a grid
ax.plot(x, y)

撰写回答