gpt4 book ai didi

python - 更改 matplotlib.pyplot 点的颜色

转载 作者:行者123 更新时间:2023-12-01 10:30:22 24 4
gpt4 key购买 nike

这是我写的情节代码:

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 的当前值为数据点着色?

上面的代码产生:

enter image description here

最佳答案

你只是犯了一个小的复制和粘贴错误。
只是对您的风格发表评论:在使用颜色列表时,您可以避免这么多 ifs,因此:

colors=[red,green,blue,black]

进而 :
plt.annotate('', xy=(x, y), xytext=(0, 0), color=colors[max(3,label)] , textcoords='offset points')

你的代码必须如此,你总是写 elif label=1 ,什么完全没有意义:
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 == 2):
plt.annotate('', xy=(x, y), xytext=(0, 0), color='green' , textcoords='offset points')
elif(label == 3):
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()

关于python - 更改 matplotlib.pyplot 点的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43281993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com