这个问题已经有答案了:
How to change scatterplot hue legend handles(1个答案)
上个月关门了。
我有一个seaborn散点图,数据点通过(1)颜色和(2)标记区分。这是生成图的最小代码:
d = {'x': [1, 2, 3, 4], 'y': [2,4,6,8], 'Set': ["Set 1", "Set 1 ", "Set 2", "Set 2"], "Test_Type": ["Direct", "Natural","Direct", "Natural"]}
df=pd.DataFrame(data=d, index=[0, 1, 2, 3])
sns.scatterplot(data=df, x="x", y="y", hue="Set", style="Test_Type")
plt.axis(ymin=0)
plt.xlabel("x values")
plt.ylabel("y values")
plt.legend()
plt.show()
“Set”图例标记是圆形的(根据“Set”列的颜色),但我希望它们是不同的东西,比如正方形。当然,我希望“Test_Type”标记仍然是原来的样子:十字架,圆形,等等。我不希望改变。
我得到的vs我想得到的:
我检查了seaborn scatterplot和matplotlib markers的文档,都没有用。
1条答案
按热度按时间ogsagwnx1#
您需要手动更改图例,这里图例中的每一行都是自定义项目,因此我们需要更改项目
[1, 2, 3]
:您还可以从列中的名称中自动识别所需的标签:
输出量: