绘制隐式定义为数组的ufloats?

时间:2016-05-01 19:59:54

标签: python numpy matplotlib

这是我的小test.py:

  1 import numpy as np
  2 from uncertainties import ufloat
  3 import matplotlib.pyplot as plt
  4 
  5 x1 = np.arange(11)
  6 x = [ufloat(x, 0.1) for x in x1]
  7 
  8 plt.plot(x.n, np.arange(11))

它会产生以下错误:

AttributeError: 'list' object has no attribute 'n'

我想这是因为我将ufloats定义为一个数组,现在这些值与错误本身就是该数组的元素。但我仍然可以用x来计算,并从不确定性的传播中得到正确的误差。 我怎么能告诉python只绘制名义值,但仍能用ufloats的误差计算?

编辑: 我试过了:

  5 x1 = np.arange(11)
  6 err = [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
  7 
  8 x = ufloat(x1, err)

它出现以下错误:

AttributeError: 'numpy.ndarray' object has no attribute 'strip'

1 个答案:

答案 0 :(得分:0)

我认为你应该像这样提取每个名义价值:

plt.plot([x[i].n for i in np.arange(11)], np.arange(11))