我有一个seaborn散点图(lmplot
),其中有超过10K个点。为了感知所有数据,当图大小较大(使标记相对较小)并且标记上的alpha较低时,它工作得更好。然而,这使得图例上的标记难以区分。如何在Seaborn中设置标记大小和标记alpha?
我看到g._legend
有一个markersize
属性,但是直接设置它没有任何作用。
示例
import numpy as np
import pandas as pd
import seaborn as sns
n_group = 4000
pos = np.concatenate((np.random.randn(n_group,2) + np.array([-1,-1]),
np.random.randn(n_group,2) + np.array([0.2, 1.5]),
np.random.randn(n_group,2) + np.array([0.6, -1.8])))
df = pd.DataFrame({"x": pos[:,0], "y": pos[:, 1],
"label": np.repeat(range(3), n_group)})
g = sns.lmplot("x", "y", df, hue = "label", fit_reg = False,
size = 8, scatter_kws = {"alpha": 0.1})
g._legend.set_title("Clusters")
字符串
的数据
3条答案
按热度按时间pes8fvy91#
可以通过设置图例标记本身的Alpha值来执行此操作。你也可以使用
_sizes
在同一个for循环中设置标记大小:字符串
的数据
sr4lhrrt2#
上述方法在海上测线图中对我不起作用。这样做:
字符串
zi8p0yeb3#
作为@DavidG和@Tommy Neeld的补充:
下一个弃用(使用seaborn 0.12.2和matplotlib 3.7.1中的regplot):
第一个月
所以现在应该是:
g.legend_.legend_handles:
个