我想使用来自两个文件的数据制作箱线图。我可以为其中之一使用下面的代码:
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”。谢谢你的帮助!
你只需要使用
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)
输出图