matplotlib`hold`关键字参数有什么作用?

时间:2015-11-04 18:52:58

标签: python matplotlib

hold参数出现在许多绘图函数中,例如plt.fill_betweenplt.arrowplt.axhline(对于import matplotlib.pyplot as plt)。但是,我找不到任何文档。 Docs seem to only state

  

其他kwargs:hold = [True | False]会覆盖默认保持状态

对于Google来说,这也是一个很难的关键字参数...

2 个答案:

答案 0 :(得分:5)

它似乎基于MATLAB的默认绘图,需要调用hold on才能在同一图表上添加多个绘图。 matplotlib的默认行为似乎是真的,请考虑

import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(0,np.pi*2,1000)
plt.plot(x,np.sin(x),hold=True)
plt.plot(x,np.sin(x)**2,hold=True)
plt.show()

enter image description here

在同一图表上绘制两条线。如果hold设置为false,则下一次调用plot会覆盖前一个。例如,

import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(0,np.pi*2,1000)

plt.plot(x,np.sin(x),hold=True)
plt.plot(x,np.sin(x)**2,hold=False)
plt.show()

enter image description here

答案 1 :(得分:3)

来自the documentation

  

当hold为True时,后续绘图命令将添加到当前轴。当hold为False时,将在下一个绘图命令

上清除当前轴和图形

hold的值确定是否在前一个绘图上绘制未来绘图,或者在绘图之前清除该数字。