Python:如何连接多个pandas数据帧以生成box-and-whisker图?

时间:2016-04-06 11:23:50

标签: python pandas matplotlib plot boxplot

假设我有一个已分箱值的数据集。这些箱存储在名为mydict的字典中。为了获得绘制Box-and-Whisker所需的直方图数量,我做了:

df_dataset = pd.DataFrame.from_dict(dict([ (k, pd.Series(v)) for k,v in mydict.items() ]))

获取直方图数量:

mydict_min = df_dataset.min()
mydict_max = df_dataset.max()
mydict_median = df_dataset.median()
mydict_1st3rd = df_dataset.quantile([.1, .3])

我的问题:我需要根据上面显示的直方图数量绘制 Box-and-Whisker plot 。如何使用DataFrame.boxplot执行此操作?在this example中,Box-and-Whisker是通过以下方式构建的:

import matplotlib.pyplot as plt
from pandas import DataFrame

df = DataFrame({'Parameter': ['A',]*8, 
                'Site': ['S1', 'S2', 'S1', 'S2', 'S1', 'S2', 'S1', 'S2'],
                'Value':  [2.34, 2.67, 2.56, 2.89, 3.45, 4.45, 3.67, 4.56]})

df.boxplot(by=['Parameter', 'Site'])
plt.show()

我是否需要创建DataFrame的DataFrame?我已经有直方图数量(如上所示),不需要分组。 如何修改此代码以包含我的直方图数量?

1 个答案:

答案 0 :(得分:0)

经过简短的搜索,我发现没有必要连接任何东西。简单的答案是从df_dataset构造Box-and-Whisker,因为它已经是series,因此它存储了所有相关的直方图数量。

创建Box-and-Whisker的行是: df_dataset.plot.box()

可以找到更多信息here

可以根据个人需要设置轴标题,图表标题,网格,垃圾箱等所有细节。