Python Matplotlib Box图

时间:2016-03-01 00:41:55

标签: python matplotlib boxplot

这是我的数据框:

{'Parameter': {0: 'A', 1: 'A', 2: 'A', 3: 'A', 4: 'A', 5: 'A', 6: 'A', 7: 'A'},
 'Site': {0: 'S1',
  1: 'S2',
  2: 'S1',
  3: 'S2',
  4: 'S1',
  5: 'S2',
  6: 'S1',
  7: 'S2'},
 'Value': {0: 2.3399999999999999,
  1: 2.6699999999999999,
  2: 2.5600000000000001,
  3: 2.8900000000000001,
  4: 3.4500000000000002,
  5: 4.4500000000000002,
  6: 3.6699999999999999,
  7: 4.5599999999999996}}

我试图按站点绘制参数的boxplot。什么是最简单的方法呢?另外一个问题是,如果我有超过1个参数,那么使用matplotlib参数绘制boxplot最简单的方法是什么?谢谢

1 个答案:

答案 0 :(得分:2)

你想要使用DataFrame.boxplot方法和分组,参数"和"网站"列。

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()

enter image description here

如果您要绘制数据的特定列,可以使用column关键字boxplot

# Plot single value
df.boxplot(column='Value', by=['Parameter', 'Site'])

# Plot Multiple values
df.boxplot(column=['Value', 'OtherValue'], by=['Parameter', 'Site'])