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
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 DataFramedf = 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'])