Python 3 pyplot.hold 已弃用

Posted

技术标签:

【中文标题】Python 3 pyplot.hold 已弃用【英文标题】:Python 3 pyplot.hold is deprecated 【发布时间】:2018-12-09 04:30:36 【问题描述】:

我想使用pyplot.hold(True),因为我想在散点图上绘制等高线图。当我使用下面的代码时,它会警告 pyplot.hold 已弃用。 Python 3 中是否还有其他选项,或者我只是忽略警告?非常感谢。

plt.scatter(X[:, 0], X[:, 1], s=150, c='b', 
marker='x', linewidths=1)
plt.hold(True)
plt.contour(X1, X2, Z, np.power(10,(np.arange(-20, 
0.1, 3)).T))
plt.hold(False)

【问题讨论】:

您还没有描述,为什么要在代码中添加plt.hold()。你想通过它达到什么目的?折旧后的行为类似于plt.hold(True),表示当前坐标轴不会在下一个绘图命令中清除。 设置或取消设置保留(在 2.1 版中已弃用)现已完全删除。 Matplotlib 现在总是表现得好像 hold=True。要清除轴,您可以手动使用 cla(),或清除整个图形使用 clf()。 matplotlib.org/api/api_changes.html?highlight=pyplot%20hold 【参考方案1】:

Matplotlib 不会自行擦除图形中的任何内容。因此,在 matplotlib 中不需要保留的概念,将被删除。

因此,您的代码应如下所示

plt.scatter(..)
plt.contour(..)

后面可能跟plt.savefig(..)plt.show()

【讨论】:

以上是关于Python 3 pyplot.hold 已弃用的主要内容,如果未能解决你的问题,请参考以下文章

Python 3 替换已弃用的 compiler.ast flatten 函数

Python 2.7.9 Mac OS 10.10.3 消息“setCanCycle:已弃用。请改用 setCollectionBehavior”

如何替换已弃用的 imp.load_dynamic 的用法?

重命名python子包,将旧名称标记为已弃用

PythonQt 是不是已弃用?

Python 中的 PayPal 自适应付款转换货币请求(已弃用的 API)