如何在python的散点图中添加具有不同标记的多个图例?
Posted
技术标签:
【中文标题】如何在python的散点图中添加具有不同标记的多个图例?【英文标题】:How to add multiple legends with different markers in scatter plot in python? 【发布时间】:2020-06-28 08:07:19 【问题描述】:这个link 接受的答案解释了如何绘制二元分类的散点图。但没有解释如何更改标记的默认颜色。所以我写了下面给出的代码来改变标记的颜色
import matplotlib.colors as mcolors
plt.figure(num=0, figsize=(8, 6), dpi=80, facecolor='w', edgecolor='k')
x=df.iloc[:,0:1].values
y=df.iloc[:,1:2].values
z=df.iloc[:,2:3].values
l=plt.scatter(x,y, c=z,cmap = mcolors.ListedColormap(["blue", "red"]),marker='+')
plt.xlabel('Exam 1 score',fontsize=14)
plt.ylabel('Exam 2 score',fontsize=14)
# Turn on the minor TICKS, which are required for the minor GRID
plt.minorticks_on()
# Customize the major grid
plt.grid(which='major', linestyle='-', linewidth='0.5', color='black')
# Customize the minor grid
plt.grid(which='minor', linestyle=':', linewidth='0.5', color='blue')
plt.legend((l,l),("Admitted", "Not Admitted"), loc="upper right")
plt.show()
但是现在我尝试将图例添加为plt.legend((l,l),("Admitted", "Not Admitted"), loc="upper right")
,结果如图所示。为此,我得到了here 的帮助,他们绘制了多个散点图,但就我而言,我只有一个散点图。
但如上图所示,图例中两个标记的标记颜色相同。所以我的问题是如何通过在散点图中使用 plt.legend()
来添加具有不同标记颜色或不同标记的多个图例?
【问题讨论】:
manually-set-color-of-points-in-legend 和 matplotlib-set-color-of-legend 和 manually-change-color-in-legend-of-pyplot 的可能重复 【参考方案1】:从 matplotlib 3.1 开始,您可以使用散点图的legend_elements()
来促进图例的创建。
import matplotlib.colors as mcolors
plt.figure(num=0, figsize=(8, 6), dpi=80, facecolor='w', edgecolor='k')
x=np.random.random(size=(10,))
y=np.random.random(size=(10,))
z=np.random.choice([0,1], size=(10,))
s = plt.scatter(x,y, c=z,cmap = mcolors.ListedColormap(["blue", "red"]),marker='+')
plt.xlabel('Exam 1 score',fontsize=14)
plt.ylabel('Exam 2 score',fontsize=14)
# Turn on the minor TICKS, which are required for the minor GRID
plt.minorticks_on()
# Customize the major grid
plt.grid(which='major', linestyle='-', linewidth='0.5', color='black')
# Customize the minor grid
plt.grid(which='minor', linestyle=':', linewidth='0.5', color='blue')
h,l = s.legend_elements()
plt.legend(h,("Admitted", "Not Admitted"))
更多examples here
【讨论】:
非常感谢!!我想要完全相同的东西。以上是关于如何在python的散点图中添加具有不同标记的多个图例?的主要内容,如果未能解决你的问题,请参考以下文章
Matlab:如何在每个数据点获得不同颜色的散点图中设置图例的颜色?
R语言ggplot2可视化:ggplot2可视化分组散点图并使用geom_smooth函数在散点图图中为不同的散点簇添加对应的回归曲线