我有一个数据集(有点)所示:Seaborn PairGrid与群重复
f1 f2 f3 value
4 2 3 0.927252
1 3 0 0.153415
0 1 1 0.928820
1 0 4 0.933250
0 4 3 0.397307
...
欲产生Seaborn PairGrid
与stripplot
s的抖动或swarmplot
S表示每对特征f1
,f2
和f3
,并使用value
作为hue
。
地块在对角线应该是这个样子:
我与创建:
df = ... # My dataset
sns.stripplot("f1", "f1", "value", data=df, jitter=True,
palette=sns.light_palette("red", len(df)),
hue_order=sorted(df["value"])).legend().remove()
和非对角线情节会是这样的:
df = ... # My dataset
sns.stripplot("f1", "f2", "value", data=df, jitter=True,
palette=sns.light_palette("red", len(df)),
hue_order=sorted(df["value"])).legend().remove()
我试图,因此,是::
import seaborn as sns
df = ... # My dataset
g = sns.PairGrid(df, hue="value", palette=sns.light_palette("red", len(df)),
hue_order=sorted(df["value"]), vars=df.columns[:-1])
g.map_diag(lambda x, **kwargs: sns.stripplot(x, x, **kwargs), jitter=True)
g.map_offdiag(sns.stripplot, jitter=True)
然而,这产生:
我不这,同样,我做我真的不知道我在这里错过了什么。我仍然可以将情节制作成我自己的情节,并将它们放入我自己的小情节中,但这是整个情节的整点。出于某种原因,这些情节在电网中是不支持的吗?
好的,有趣的是它没有'hue'参数。但得到这个,如果我这样做'g.map(sns.stripplot,jitter = True,size = 3,hue = df [“value”],palette = sns.light_palette(“red”,len(df)), hue_order = sorted(df [“value”]))'我实际上得到了我想要的。对我而言,这是一种不一致的行为...但是,也许你可以解释一下当你说色调只是一个“更多维度”而不是颜色时你的意思? – jdehesa
我试着在答案中解释得更好一点。你确定你得到的情节实际上是正确的,即点的颜色对应于它的值,还是仅仅是调色板中的任何颜色? – ImportanceOfBeingErnest
嗯,实际上很难说100%,但是我认为是这样,[这里](https://imgur.com/a/lYVSC)是一个更简单的情况下的截图(两个特征和10个数据点)比较“f1”与“f2”并排绘图,一对来自一对格子,另一个来自单个条带图。 – jdehesa