我是Python新手,更习惯于用R编程和使用ggplot进行可视化。我试图在matplotlib中完成一个可视化,但似乎无法理解绘图图例。以下是代码。X和Y是数值类型,而列z是字符串。
我希望图表中的图例0为红色,1为黑色,但只显示图例标题。
plt_data = pd.DataFrame(plt_data)
plt.figure()
fig, ax = plt.subplots()
labs = ["1", "0"]
colors = {'1':'black', '0':'red'}
scatter = ax.scatter(plt_data['x'], plt_data['y'], c = plt_data['z'].map(colors))
legend1 = ax.legend(*scatter.legend_elements(), loc="upper left", title="z")
ax.add_artist(legend1)
plt.show()
这是一幅
任何帮助都将不胜感激,因为这个问题似乎不应该太难,但我正在努力寻找一个解决方案,工程
1条答案
按热度按时间3npbholx1#
创建自定义颜色Map表,在本例中为颜色列表:
现在,对于散点着色,将“c”看作是对每个点进行分类的数据(也就是“z”列),而“cmap”将决定每个类别的颜色。
因此:
这给出:
您不需要调用add_artist(),除非您实际上打算添加多个图例。