这是我写的绘图代码:
import matplotlib.pyplot as plt
Y = [ 1 , 2 , 3 ]
X = [ 1 , 2 , 4 ]
vocabulary = [1 , 2 , 3]
plt.scatter(X , Y)
for label, x, y in zip(vocabulary, X, Y):
if(label == 1):
plt.annotate('', xy=(x, y), xytext=(0, 0), color='red' , textcoords='offset points')
elif(label == 1):
plt.annotate('', xy=(x, y), xytext=(0, 0), color='green' , textcoords='offset points')
elif(label == 1):
plt.annotate('', xy=(x, y), xytext=(0, 0), color='blue' , textcoords='offset points')
else :
plt.annotate('', xy=(x, y), xytext=(0, 0), color='black' , textcoords='offset points')
plt.show()
我正试图根据数组vocabulary
中的值更改颜色
如果1,则将数据点上色为红色,如果2,则为绿色,如果3,则为蓝色,否则将点上色为黑色。但对于所有点,每个点的颜色都设置为蓝色。如何根据vocabulary
的当前值为数据点上色?
以上代码产生:
您刚刚犯了一个小的复制粘贴错误。 只是对你的风格的一个评论:在使用颜色列表时,你可以避免这么多的ifs,所以:
然后:
你的代码必须如此,你总是写
elif label=1
,这完全没有意义:你可以编一本颜色字典,在散点图中查找,如下所示
结果
相关问题 更多 >
编程相关推荐