我有两个大熊猫系列,我想通过将它们相互重叠绘制在视觉上进行比较。我已经尝试过以下
>>> s1 = pd.Series([1,2,3,4,5])
>>> s2 = pd.Series([3,3,3,3,3])
>>> df = pd.concat([s1, s2], axis=1)
>>> sns.stripplot(data = df)
产生以下图片:
现在,我知道hue
的{{1}}关键字,但是要尝试应用它,需要我使用关键字sns.stripplot
和x
。我已经尝试过将数据转换成类似的数据框
y
所以我可以“翻身” >>> df = pd.concat([pd.DataFrame({'data':s1, 'type':'s1'}), pd.DataFrame({'data':s2, 'type':'s2'})])
;但是即使那样,我仍然不知道关键字type
的内容(假设x
)。像这样忽略关键字y = 'data'
x
答案 0 :(得分:1)
seaborn
通常适用于长格式数据,因此您可能需要稍微重新排列数据框。 hue
关键字需要一列,因此我们将使用.melt()
来获得一列。
long_form = df.melt()
long_form['X'] = 1
sns.stripplot(data=long_form, x='X', y='value', hue='variable')
将为您提供一个大致反映您的需求的图:
当我们执行pd.melt
时,我们将框架从具有多列值更改为只有一列值,并使用“变量”列来标识它们来自哪几列原始列。我们添加一个'X'
列是因为stripplot
同时需要x
和hue
才能正常工作。然后,我们的long_form
数据帧如下所示:
variable value X
0 0 1 1
1 0 2 1
2 0 3 1
3 0 4 1
4 0 5 1
5 1 3 1
6 1 3 1
7 1 3 1
8 1 3 1
9 1 3 1