并排绘制箱线图而不是重叠

问题描述 投票:0回答:1

我想使用来自两个文件的数据制作箱线图。我可以为其中之一使用下面的代码:

import matplotlib.pyplot as plt
import pandas as pd

df1 = pd.read_csv("file1", sep=r'\s+', header=0)
df1.boxplot(['VAL'], by=['LET'])

我尝试使用下面的代码将两个数据集组合在一个图上,但两组图不是并排,而是重叠的。

a1=df1[['VAL','LABEL']]
ax = a1.boxplot(by='LABEL', return_type='axes')
a2=df2[['VAL','LABEL']]
a2.boxplot(by='LABEL', ax=ax)

附上FILE1的样本,FILE2结构相同,只是编号不同。

LET VAL
A     0.1
A     0.5
A     0.3
B     0.2
B     0.4
B     -0.5
B     0.2
B     0.1
C     -0.2
C     0.3
C     0.1
C     0.2
D     0.5
D     0.1

顺便说一句,我知道 seaborn 可以做到这一点,但我不能使用“seaborn”。谢谢你的帮助!

python boxplot
1个回答
0
投票

你只需要使用

position
参数将不同的dfs向左或向右移动。我也添加了一种颜色,所以你可以看到不同之处。我使用了与您相同的代码并添加了更改位置和颜色的内容。数据是随机的。希望这就是您要找的...

a1=df1[['VAL','LABEL']]
ax = a1.boxplot(by='LABEL', positions=np.array(range(df1.LABEL.nunique()))*2.0-0.5, boxprops=dict(color='blue'),return_type='axes')
a2=df2[['VAL','LABEL']]
a2.boxplot(by='LABEL', positions=np.array(range(df2.LABEL.nunique()))*2.0+0.5, boxprops=dict(color='red'),ax=ax)

输出图

© www.soinside.com 2019 - 2024. All rights reserved.