我有一個值列表,其中一些值需要在使用matplotlib繪圖之前進行轉換。Matplotlib和numpy:繪製x軸上的無限數字(pyzo)時出錯
的表達式看起來如下:
m=0
while m < len(power):
for item in power:
if float(list1[m]) != 0:
list2.append(float((1/float(list1[m])-1)*float(power[m])))
elif float(list1[m]) == 0:
list2.append("inf")
m+=1
其中「功率」是0和100+(一個十進制)和list1的之間的值的列表可以是負的值,0或正值之間的任何(四位小數)。
正如你所看到的,以避免收到零除我有一個條件,以得到一個漸近的行爲,如果列表1 = 0
這工作得很好,和情節細膩,爲y軸。但是,如果我嘗試繪製在x軸上,我得到以下警告同樣的事情:
[...]\lib\site-packages\matplotlib\lines.py:504: RuntimeWarning: invalid value encountered in subtract
return np.alltrue(x[1:] - x[0:-1] >= 0)
[...]\lib\site-packages\matplotlib\lines.py:504: RuntimeWarning: invalid value encountered in greater_equal
return np.alltrue(x[1:] - x[0:-1] >= 0)
從我所看到的,情節看起來很好(有可能是我沒有看到的一些問題)但我想避免發出警告。
謝謝你的嘗試。該代碼大約500行,分爲對象和類,所以我試圖稍微縮寫它。此外,我沒有訪問pylab,只有matplotlib。 List1類似於1700個值,通常爲0.000到0.7500。情節本身是:「plt.plot(arg_x,arg_y,linetype,color = colortype)」其中arg_x == list2在這種情況下。 – Halldinz0r 2014-09-03 08:46:01
對不起,我再次檢查,我有權訪問pylab。代碼仍然會產生相同的錯誤。 – Halldinz0r 2014-09-03 13:43:38