问题
This is my dataframe:
{'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}}
I am trying to plot boxplot of parameter by site. What is an easiest way to do it? Additional question is if i will have more than 1 parameter, what will be the easiest way to plot boxplot using matplotlib by parameter? Thank you
回答1:
You're going to want to use the DataFrame.boxplot method and group by the "Parameter" and "Site" columns.
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()
If you want to plot a specific column of your data, you can use the column
keyword argument to boxplot
.
# Plot single value
df.boxplot(column='Value', by=['Parameter', 'Site'])
# Plot Multiple values
df.boxplot(column=['Value', 'OtherValue'], by=['Parameter', 'Site'])
来源:https://stackoverflow.com/questions/35712627/python-matplotlib-box-plot