我正在python
使用matplotlib
编写一个绘图功能。用户可以指定一些内容,例如"刻度线"。最简单的方法是更改rcParams
,但这些是全局属性,因此在调用绘图函数之后,所有新绘图都会有刻度线。
有没有办法专门为一个数字设置绘图默认值?
或者至少有一种改变一个绘图函数属性的好方法,然后将它们更改回之前使用的值(不一定是rcdefaults
)?
答案 0 :(得分:16)
您可以在rc_context
语句中使用with
函数,该语句将使用您为下面缩进的块提供的字典设置rc参数,然后将它们重置为块之后的任何内容。例如:
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)