2017-07-21 48 views
1

我有一个数据集(有点)所示: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 PairGridstripplot s的抖动或swarmplot S表示每对特征f1f2f3 ,并使用value作为hue

地块在对角线应该是这个样子:

1D strip plot

我与创建:

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() 

和非对角线情节会是这样的:

2D strip plot

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) 

然而,这产生:

Strip plot pair grid

我不这,同样,我做我真的不知道我在这里错过了什么。我仍然可以将情节制作成我自己的情节,并将它们放入我自己的小情节中,但这是整个情节的整点。出于某种原因,这些情节在电网中是不支持的吗?

回答

3

与名称不同,hue参数未定义颜色。将它想象成“更深层次”或类似的东西可能会更好。虽然在许多情况下,这个进一步的维度是通过颜色来显现的,但对每一个情节来说都不一定是这样。

为了获得所需的PairGrid,我们可以将色调离开,以便显示所有值。

import matplotlib.pyplot as plt 
import seaborn as sns 
import pandas as pd 
import numpy as np 

df = pd.DataFrame(np.random.randint(0,5, size=(4**3, 3)), columns=["f1", "f2", "f3"]) 
df["value"] = np.random.rand(len(df)) 

g = sns.PairGrid(df, vars=df.columns[:-1]) 
g.map(sns.stripplot, jitter=True, size=3) 

plt.show() 

enter image description here

这里的要点是,PairGridhue是东西比stripplothue完全不同。您可能确实使用了条纹图的色调来为每个单独的图中的点着色,而PairGridhue则将数据框划分为更多的类别,每个色调值一个类别;这在这里是不需要的,因为数据框中的值列包含一个连续变量,并且您最终会得到与该列中不同值的许多类别。

+0

好的,有趣的是它没有'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

+0

我试着在答案中解释得更好一点。你确定你得到的情节实际上是正确的,即点的颜色对应于它的值,还是仅仅是调色板中的任何颜色? – ImportanceOfBeingErnest

+0

嗯,实际上很难说100%,但是我认为是这样,[这里](https://imgur.com/a/lYVSC)是一个更简单的情况下的截图(两个特征和10个数据点)比较“f1”与“f2”并排绘图,一对来自一对格子,另一个来自单个条带图。 – jdehesa