# x,y,size 데이터 셋팅
x = target_data.accuracy
y = target_data.f1_score
s = target_data.recall
# 라벨셋팅(순서유의)
users =['dnn', 'random forest', 'extra trees', 'ensemble']
这是一个值得怀疑的观点。
# 컬러셋팅
colors = list(np.array([0.81520346,0.28735556, 0.6542928, 0.3542928]))
df = pd.DataFrame(dict(accuracy=x, f1_score=y, users=users, s=s, c=colors ))
# 그래프 그리기
ax = df.plot.scatter(x='accuracy', y='f1_score', s=df.s*10,c= df.c, alpha=0.5)
for i, txt in enumerate(users):
ax.annotate(txt, (df.accuracy.iat[i],df.f1_score.iat[i]))
plt.show()
我肯定设置了颜色数组并匹配了图形。
生成的图像带有图形和标签,格式良好,但是颜色表示为黑白图像。 怎么了?
答案 0 :(得分:1)
没有什么错,但是您的Rice's theorem(颜色图)默认为颜色图,其中数字映射为不透明度。您可以从以下较长列表中将其更改为自己喜欢的任何内容:cmap,并获得非常丰富多彩的情节
ax = df.plot.scatter(x='accuracy', y='f1_score', s=df.s*10,c= df.c,
alpha=0.5, cmap='PuOr') # added cmap
https://matplotlib.org/examples/color/colormaps_reference.html
答案 1 :(得分:0)
如果仅将标量数字用于颜色设置,它将映射到颜色图,默认情况下为rc image.cmap
-默认情况下为灰度。因此,您可以另外设置其他颜色图(例如cmap='viridis'
等),也可以将颜色定义为颜色名称,rgb(a)元组或rgb十六进制值:
示例:
colors = ['r', 'g', 'b', 'm']
colors = [[.2, .3, .4], [.7, .3, .4], [.2, .9, .4], [.2, .3, .0]]
colors = ['#a0ff45', '#123456', '#fedcba', '#00ff77']