如何解决Matplotlib每次如何使用相同的颜色进行绘图?
我有此代码:
import matplotlib.pyplot as plt
plt.figure(figsize=[13,8])
for x in range(10):
labels = pred_labels[:len(predict)]
plt.scatter(tnse[:,0][labels == x],tnse[:,1][labels == x],label=x)
plt.legend(fontsize='large')
plt.title('MNIST predictions')
plt.show()
我有predict
-作为神经网络输出的maxtrix和作为数字pred_label
的向量的[0..9]
确实如此,但是每次我要绘制它们时,每组点都有不同的颜色。有没有办法使它们具有恒定的颜色?
我试图用这个:
plt.scatter(tnse[:,label=x,c=x)
但这没用
解决方法
我经常使用的解决方案:
- 从颜色图创建
N
颜色, - 为每个图指定颜色。
这是一个受您启发的最小示例:
import matplotlib.pyplot as pp
from numpy import random,linspace
# datas
x,y = [],[]
for _ in range(10):
x.append(random.rand() + .1 * random.rand(32))
y.append(random.rand() + .1 * random.rand(32))
# colors
colors = pp.cm.plasma(linspace(0,1,10))
# plot
pp.close(0)
pp.figure(0)
for color,i in zip(colors,range(10)):
pp.plot(x[i],y[i],'o',label=f"{i}",mec=color,mfc=color)
pp.legend()
pp.show()
,
您可以使用itertools循环显示10种以上的颜色(每次运行时为每个类赋予相同的颜色)。只需将colors
替换为您的颜色即可循环
import itertools
colors = itertools.cycle([colors])
plt.scatter(tnse[:,0][labels == x],tnse[:,1][labels == x],label=x,color=next(colors))
编辑:根据下面的评论
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。