【问题标题】:Python matplotlib - errorbar None values in seriesPython matplotlib - 错误栏无系列值
【发布时间】:2014-08-01 12:41:57
【问题描述】:

我试图绘制带有误差线的系列。该系列可能包含 None 值。不使用错误时 - 该系列的绘制没有错误。尝试使用误差线进行绘图时 - 我收到此错误:

我的代码是:

x = [10.4, 11.12,11.3,None, 10.2,11.3]
y = [0.3, 1.2, 0.7, None, 1.1, 0.4]
y_err = [0.01, 0.04, 0.07, None, 0.01, 0.05] 

plt.plot(x,y, 'o', color='r') # this one works. I get a plot with 5 points. The null point is skipped
plt.errorbar(x,y,yerr=y_err) # this one doesn't work

我得到的错误是:

 TypeError: unsupported operand type(s) for -: 'NoneType' and 'NoneType'

有没有办法跳过系列中的空值?

谢谢!

【问题讨论】:

  • x、y 和 y_err 的索引是否相同?
  • 系列一般有多大?如果您可以在绘制之前简单地过滤掉所有None 值,则可以轻松完成。问题是:你有时间和记忆力吗?
  • @Sleepyhead - The Nones 出现在同一个索引中。
  • @Alexander - 预过滤可能很耗时,我希望避免这种情况......

标签: python matplotlib


【解决方案1】:

尝试使用 NaN 而不是“None”。

x = [10.4, 11.12,11.3,float('NaN'), 10.2,11.3]
y = [0.3, 1.2, 0.7, float('NaN'), 1.1, 0.4]
y_err = [0.01, 0.04, 0.07, float('NaN'), 0.01, 0.05] 
plt.plot(x,y, 'o', color='r')
plt.errorbar(x,y,yerr=y_err)

Assigning a variable NaN in python without numpy

【讨论】:

  • 效果很好!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-19
  • 2017-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-14
  • 1970-01-01
相关资源
最近更新 更多