如何为matplotlib中的一个图设置局部rcParams或rcParams
我正在用 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)