Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 小提琴为两个数据帧的所有列绘制,小提琴的每一侧显示相同的列,但来自另一个数据帧_Python_Pandas_Matplotlib_Seaborn_Violin Plot - Fatal编程技术网

Python 小提琴为两个数据帧的所有列绘制,小提琴的每一侧显示相同的列,但来自另一个数据帧

Python 小提琴为两个数据帧的所有列绘制,小提琴的每一侧显示相同的列,但来自另一个数据帧,python,pandas,matplotlib,seaborn,violin-plot,Python,Pandas,Matplotlib,Seaborn,Violin Plot,我有两个名为train\u df和test\u df的熊猫数据帧。它们都有名称相同的列,test_-df并没有像train_-df那样只有一列。现在我想绘制小提琴图,显示我的数据帧的每一列在图的每一行中的分布(如方框图);小提琴的每一侧代表相同的列,但来自不同的数据帧,以便比较两个数据帧中每列的分布。我如何做到这一点(最好是在matplotlib或seaborn中) 编辑1: 类似下面的图,但我希望每个小提琴显示每个列的分布,小提琴的每一侧显示每个数据帧中具有相同列的列的分布。除此之外,此图像仅

我有两个名为
train\u df
test\u df
的熊猫数据帧。它们都有名称相同的列,
test_-df
并没有像
train_-df
那样只有一列。现在我想绘制小提琴图,显示我的数据帧的每一列在图的每一行中的分布(如方框图);小提琴的每一侧代表相同的列,但来自不同的数据帧,以便比较两个数据帧中每列的分布。我如何做到这一点(最好是在matplotlib或seaborn中)

编辑1:
类似下面的图,但我希望每个小提琴显示每个列的分布,小提琴的每一侧显示每个数据帧中具有相同列的列的分布。除此之外,此图像仅显示两列,并使用第三列作为颜色。

您必须将两个数据帧合并为一个数据帧,并用一列设置每行的原点:

#创建假数据
tips=sns.load\u数据集('tips')
train_df=tips.loc[tips['smoker']=='Yes']
test_df=tips.loc[tips['smoker']='No']
#连接两个数据帧
df=pd.concat([train_df.assign(orig='train'),test_df.assign(orig='test')],axis=0)
#密谋
ax=sns.violinplot(x=“day”,y=“total\u bill”,hue=“orig”,
数据=df,拆分=真)