我有一个值列表,其中一些值在使用matplotlib绘图之前需要转换。
表达式如下:
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
其中&#34;电源&#34;是0到100+之间的值列表(一个十进制),list1可以是负值,0或正值(四位小数)之间的任何值。
正如你所看到的,为了避免零分割,如果list1 = 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)
从我所看到的情节看,情节看起来很好(也许有一些我没有看到的问题),但我想避免收到警告。
答案 0 :(得分:0)
如果你不给我们你的绘图代码,很难说你的绘图代码有什么问题!但是,让我们试一试:
%pylab
power = randint(1, 100, 10)
list1 = randn(10)
list2 = []
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
plot(t, list2)
plot(list2, t)
这似乎有效。
答案 1 :(得分:0)
这可能不是处理此问题的正确方法,但似乎有效:
import numpy as np
np.seterr('ignore')
瞧。没有打印警告。如果出现问题,我想这可能是一种风险,但从我所看到的情况来看,情况就好了。