Nic*_*ckj 31 python matplotlib
我想在两个不同的子图中绘制数据.绘图后,我想回到第一个子图并在其中绘制一个额外的数据集.但是,当我这样做时,我收到此警告:
MatplotlibDeprecationWarning:使用与先前轴相同的参数添加轴当前重用前一个实例.在将来的版本中,将始终创建并返回新实例.同时,通过将唯一标签传递给每个轴实例,可以抑制此警告,并确保将来的行为.warnings.warn(message,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)
Run Code Online (Sandbox Code Playgroud)
有关如何避免此警告的任何想法?我使用matplotlib 2.1.0.看起来像这里一样的问题
Dav*_*idG 19
这是一个很好的例子,示出了使用受益matplotlib的面向对象的API.
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()
Run Code Online (Sandbox Code Playgroud)
注意:变量名称以小写字母开头,data = ...而不是Data = ...看PEP8,这更加pythonic
使用将在当前图形中plt.subplot(1,2,1) 创建一个新轴。弃用警告表明,在将来的发行版中,当您再次调用它时,它将不会抓住先前创建的轴,而是会覆盖它。
您可以通过将引用分配给变量来保存对轴的第一个实例的引用。
plt.figure()
# keep a reference to the first axis
ax1 = plt.subplot(1,2,1)
ax1.plot(Data)
# and a reference to the second axis
ax2 = plt.subplot(1,2,2)
ax2.plot(Data)
# reuse the first axis
ax1.plot(Data+1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32693 次 |
| 最近记录: |