【发布时间】:2014-04-01 22:25:26
【问题描述】:
我有两段相似的 matplotlib 代码,它们产生不同的结果。
1:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,10,100)
y = np.linspace(0,10,100)
y[10:40] = np.nan
plt.plot(x,y)
plt.savefig('fig')
2:
from pylab import *
x = linspace(0,10,100)
y = linspace(0,10,100)
y[10:40] = np.nan
plot(x,y)
savefig('fig')
代码 #1 生成一条直线,其中 NaN 区域用不同颜色的实线填充
代码 #2 生成一个带有直线的图形,但没有用直线填充 NaN 区域。相反,那里有一个差距。
我怎样才能让代码#1 产生一个间隙来代替NaN 的代码#2。我已经用谷歌搜索了几天,但一无所获。任何帮助或建议将不胜感激。提前致谢
【问题讨论】:
-
这两个是相同的。你得到“一条用不同颜色的实线填充的 NaN 区域的直线”的唯一方法是,如果你绘制了同一条线两次,而第一次没有
NaNs。您是否将这两段代码一起运行?如果是这样,他们将绘制在同一个图上。 -
我使用内联后端得到了相同的数字。您使用的是哪个后端?
-
您几乎肯定会看到您在同一
ipython(或类似)会话中所做的绘图效果。如果您在长时间运行的交互式会话中工作,最好始终明确地创建一个新图形。
标签: python matplotlib interpolation nan