Python Seaborn:来自两个数据帧的分组箱线图

Python Seaborn:来自两个数据帧的分组箱线图,python,plot,seaborn,Python,Plot,Seaborn,我想用seaborn绘制分组箱线图,但数据存在于两个不同的DataFrame对象中 数据帧具有相同的行和列,具有不同的值,并且具有以下形状:(10.000 x 24)。在本例中,列是癌症类型,行是基因 当我只绘制一个数据帧时,一切看起来都很好。接下来,我加入了两个数据帧,如下所示: df1 = pd.read_csv('a.csv') df2 = pd.read_csv('b.csv') # categorical variable similar to 'smoker' attribute i

我想用seaborn绘制分组箱线图,但数据存在于两个不同的
DataFrame
对象中

数据帧具有相同的行和列,具有不同的值,并且具有以下形状:(10.000 x 24)。在本例中,列是癌症类型,行是基因

当我只绘制一个数据帧时,一切看起来都很好。接下来,我加入了两个数据帧,如下所示:

df1 = pd.read_csv('a.csv')
df2 = pd.read_csv('b.csv')
# categorical variable similar to 'smoker' attribute in tips dataset
df1['kind'] = 'catA'
df2['kind'] = 'catB'
both = pd.concat((df1, df2))
当我现在绘制数据时,一切看起来都很好:

seaborn.boxplot(data=both)
给了我一个漂亮的箱线图

但是,我无法正确设置
hue
x
y
属性以获得与分组箱线图相同的图。 我知道它应该类似于:

seaborn.boxplot(x=?, y=?, hue='kind', data=both)
但是我不知道如何设置
x
y
以获得与设置为
None
相同的行为

谢谢你的帮助和建议

最好的,
Roman

似乎您的数据帧是“宽”格式。您需要将其转换为“长”格式(函数如
pandas.melt
pandas.wide\u to\u long
应该会有所帮助)。您必须组织您的数据,使其成为一个nx3数据帧,列为1。你的基因表达测定,2。癌症类型,和3。您的新分类变量(类似于“smoker”)。如果您希望有另一个变量(如gene name),则可以有3个以上的列。但这三个人必须在场,才能让情节发挥作用

(我可能误解了您数据的内容,但这是我对您测量的内容和变量的理解。)

然后,您的命令将类似于:

seaborn.boxplot(x='measurement', y='cancer_type', hue='kind', data=both)