首页 > 解决方案 > 从两个数据帧中并排绘制箱线图和晶须图

问题描述

我希望将这两个箱线图组合成一张图像:[![这是我能够制作箱线图的两个数据文件,以便轻松使用 Seaborn 箱线图][1]][1]

我使用的数据文件来自多个 excel 电子表格,如下所示:

0 1 2 3 4 5 6 ...
5 2 3 5 6 2 5 ...
2 3 4 6 1 2 1 ...
1 2 4 6 7 8 9 ...
... ... ... ... ... ... ... ...

列标题代表小时,列值是我想用来创建箱线图和晶须图的值。

目前我的代码是这样的:

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

xls = pd.ExcelFile('ControlDayVar.xlsx')
df1= pd.read_excel(xls, 'DE_ControlDays').assign(Location=1)
df2= pd.read_excel(xls, 'DE_FestDays').assign(Location=2)
DE_all =pd.concat([df1,df2])
DE= pd.melt(DE_all, id_vars=['Location'], var_name=['Hours'], value_name='Concentration')
ax= sns.boxplot(x='Hours', y= 'Concentration', hue= 'Location', data=DE)
plt.show()

The result I get is this: 
[![Yikes][2]][2]

I expect my issue has to do with the format of my data files, but any help would be appreciated.Thanks!


  [1]: https://i.stack.imgur.com/dXo6F.jpg
  [2]: https://i.stack.imgur.com/NEpi7.jpg

标签: seabornboxplot

解决方案


如果以某种方式Concentration不再将值正确识别为数字数据类型,则可能会发生这种情况。在这种情况下,y 轴不能再被理解为连续的,这会导致“yikes”结果。


推荐阅读