调用plt.scatter时c传入0和1列表,散点图为何显示黑黄配色?
为什么plt.scatter传入0和1的列表会显示黑黄散点?
当你给plt.scatter()的c参数传入包含0和1的数值列表时,matplotlib会把这些数值当作颜色映射的输入值,自动匹配到当前默认的颜色映射(colormap)上:
- 数值0会被映射到颜色映射的一端,数值1会被映射到另一端
- 你看到黑黄两色,是因为当前环境中matplotlib默认的颜色映射,其两端颜色正好对应黄色和黑色(比如
binary这类黑白反转的映射,或是其他自定义的默认配置)
另外,代码里设置了edgecolor="black",每个散点的边缘都会显示黑色,这会让内部的颜色差异更明显。
如果不想依赖默认映射,想自定义类别对应的颜色,可以直接给color参数传入颜色列表,比如:
plt.scatter(x, y, color=['yellow' if t==0 else 'black' for t in temple_type], edgecolor="black", s=80)
内容的提问来源于stack exchange,提问作者Steven Dascoli
相关产品推荐
相关产品推荐

