我想在两个不同的子图中绘制数据。绘制后,我想回到第一个子图并在其中绘制另一个数据集。但是,这样做时会收到以下警告:
MatplotlibDeprecationWarning:当前使用与以前的轴相同的参数添加轴现在会重用之前的实例。在将来的版本中,将始终创建并返回一个新实例。同时,通过向每个轴实例传递唯一的标签,可以抑制此警告,并确保将来的行为。warnings.warn(消息,mplDeprecation,stacklevel = 1)
我可以用一段简单的代码来重现它:
import matplotlib.pyplot as plt import numpy as np # Generate random data data = np.random.rand(100) # Plot in different subplots plt.figure() plt.subplot(1, 2, 1) plt.plot(data) plt.subplot(1, 2, 2) plt.plot(data) plt.subplot(1, 2, 1) # Warning occurs here plt.plot(data + 1)
关于如何避免此警告的任何想法?我使用matplotlib 2.1.0。看起来像这里一样的问题
这是一个很好的例子,示出了使用受益matplotlib的面向对象的API。
matplotlib
import numpy as np import matplotlib.pyplot as plt # Generate random data data = np.random.rand(100) # Plot in different subplots fig, (ax1, ax2) = plt.subplots(1, 2) ax1.plot(data) ax2.plot(data) ax1.plot(data+1) plt.show()
注意: 将变量名以小写字母开头(例如,data = ...而不是Data = ...查看PEP8)更像是Pythonic
data = ...
Data = ...