在pandas
和seaborn
中,可以使用with
关键字临时更改显示/绘图选项,该关键字仅将指定的设置应用于缩进代码,同时保留全球环境未受影响:
print(pd.get_option("display.max_rows"))
with pd.option_context("display.max_rows",10):
print(pd.get_option("display.max_rows"))
print(pd.get_option("display.max_rows"))
输出:
60
10
60
当我同样尝试with mpl.rcdefaults():
或with mpl.rc('lines', linewidth=2, color='r'):
时,我会收到AttributeError: __exit__
。
有没有办法暂时更改matplotlib中的rcParams,以便它们只应用于代码的选定子集,还是必须手动来回切换?
答案 0 :(得分:17)
是的,使用样式表。
请参阅:http://matplotlib.org/users/style_sheets.html
e.g:
# The default parameters in Matplotlib
with plt.style.context('classic'):
plt.plot([1, 2, 3, 4])
# Similar to ggplot from R
with plt.style.context('ggplot'):
plt.plot([1, 2, 3, 4])
您可以轻松定义自己的样式表并使用
with plt.style.context('/path/to/stylesheet'):
plt.plot([1, 2, 3, 4])
对于单个选项,还有plt.rc_context
with plt.rc_context({'lines.linewidth': 5}):
plt.plot([1, 2, 3, 4])
答案 1 :(得分:14)
是的,matplotlib.rc_context
功能可以满足您的需求:
import matplotlib as mpl
import matplotlib.pyplot as plt
with mpl.rc_context({"lines.linewidth": 2, "lines.color": "r"}):
plt.plot([0, 1])