我尝试使用python 3.5来学习本教程here,但是我得到了错误而不是预期的结果。此外,如果您解释下面的指示行,我将不胜感激。
import matplotlib.pyplot as plt
x=[1,2,3,4,5]
y=[1,2,3,4,5]
list1, list2 = [123, 'xyz', 'zara', 'abc'], [456, 700, 200]
print ("min value element : ", min(list1))
print ("min value element : ", min(list2))
plt.scatter(x, y, color='red')
#please explain this line:
plt.plot([y.min(), y.max()], [y.min(), y.max()], color='blue', linewidth=3)
plt.show()
答案 0 :(得分:1)
在python 3中,内置数据类型的比较操作更严格。
>>> min([123, 'xyz', 'zara', 'abc'])
TypeError: unorderable types: str() < int()
min()
尝试比较python 2中可能的'xyz' < 123
,而不是python 3中的min(list)
。
如果您想获得列表中最小的成员,请使用list.min()
,而不是plt.plot([min(y), max(y)], [min(x), max(x)], color='blue', linewidth=3)
。
这应该有用,例如:
my $path = $shellcode . (pack('V', $target->[2]) x 16) . "\x00\x00";
答案 1 :(得分:0)
问题可能是您需要将列表传递到min和max,如下所示:
plt.plot([min(y), max(y)], [min(y), max(y)], color='blue', linewidth=3)
现在这只会在[1,1]和[5,5]之间划一条线。
如果你想相互绘制x和y,你可以这样做:
plt.plot(x, y, color='blue', linewidth=3)
对于list1,你有一个包含整数和字符串的列表,所以字符串只会被min和max忽略。
答案 2 :(得分:0)