我准备了一个Pandas DataFrame:
df = pd.read_csv("data/pm25.csv")
df['date'] = pd.to_datetime(df['date'])
start_date = pd.to_datetime("2022-01-01T00:00:00.000Z")
end_date = pd.to_datetime("2022-12-31T00:00:00.000Z")
mask = (df['date'] >= start_date) & (df['date'] <= end_date)
df = df.loc[mask]
df.set_index('date', inplace=True)
min max median q1 q3 stdev count
date
2022-01-01 00:00:00+00:00 1.63 92.83 3.99 2.87 6.13 10.013 562
2022-01-02 00:00:00+00:00 0.70 122.47 2.97 2.40 3.79 10.038 552
2022-01-03 00:00:00+00:00 0.67 41.77 2.60 1.70 3.17 3.534 555
2022-01-04 00:00:00+00:00 0.60 122.47 2.17 1.40 3.60 7.237 565
2022-01-05 00:00:00+00:00 1.10 47.30 3.37 2.97 3.85 3.410 560
... ... ... ... ... ... ... ...
2022-12-27 00:00:00+00:00 1.17 32.67 2.20 1.93 2.57 1.459 535
2022-12-28 00:00:00+00:00 0.60 2.43 1.20 1.00 1.40 0.298 491
2022-12-29 00:00:00+00:00 0.50 10.40 1.50 0.92 2.20 0.896 553
2022-12-30 00:00:00+00:00 0.60 24.13 1.90 1.07 2.60 2.120 463
2022-12-31 00:00:00+00:00 0.40 93.60 1.40 0.80 2.29 6.909 536
[363 rows x 7 columns]>
现在我想把它画成一个箱线图。日期(大约365)应该显示在x轴上,每天都应该有一个盒子。
除了pandas和matplotlib,我不想使用任何其他库。我如何选择数据,让我像上面描述的那样显示它?我似乎只设法在x轴上显示列(min,max,median,...)...
1条答案
按热度按时间4jb9z9bj1#
当你使用聚合数据时,你不能使用
ax.boxplot
,但你仍然可以使用ax.bxp
。但是,你必须计算一些缺失的数据,如iqr
,whishi
和whislo
。从你的dataframe,你可以做:
输出: