【发布时间】:2022-01-12 19:33:40
【问题描述】:
我正在尝试通过“site_name”为 3 个数据集 - 'obs'、'raw' 和 'adj' 生成一个单独的分组箱线图。因此,在本例中,最终图应该有 3 个按“site_name”或 SITE A、SITE B 分组的“obs”、“raw”和“adj”时间序列的并排箱线图。我的数据如下所示:
site_name obs raw adj
0 SITE A 6.418529189 11.23949224 6.985811001
1 SITE A 8.788185389 14.97198142 9.321099071
2 SITE A 9.150093299 15.03959828 9.974189383
3 SITE A 8.960796086 14.53909986 10.08513361
4 SITE A 7.04010526 11.32339089 7.496043956
5 SITE A 7.750408473 12.23209169 7.893739255
6 SITE A 5.396922286 9.262985075 5.584104478
7 SITE A 4.842398234 8.77877907 5.436729651
8 SITE A 2.46593252 4.809821429 2.779181548
9 SITE A 5.650324669 9.868885673 6.720622287
10 SITE B 12.98071991 14.58748261 13.09878999
11 SITE B 8.768521796 9.628748068 8.751576507
12 SITE B 7.163978706 8.305841446 7.146397775
13 SITE B 7.765772425 8.367532468 7.540894661
14 SITE B 6.370840508 5.733239437 5.893661972
15 SITE B 4.46220486 5.286569343 4.356613139
16 SITE B 8.766229103 9.188587732 8.637717546
17 SITE B 7.648023594 7.622237762 7.481734266
18 SITE B 6.26515501 6.109928058 6.035798561
19 SITE B 6.962116967 8.466759388 7.241140473
而且,我已经尝试过了,但它什么也没画,而且给我一个错误 -
df.boxplot(column=['site_name'],by=['obs','raw','adj'])
这个错误:
TypeError: ufunc 'true_divide' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
而且,我在下面尝试了这段代码,但它按 site_name 将“obs”、“raw”和“adj”列绘制在单独的组中,这不是我需要的。这是没有达到所需结果的代码:
df.boxplot(column=['obs','raw','adj'],by=['site_name'])
感谢您的帮助,
【问题讨论】:
-
你的意思是
df.groupby('site_name').boxplot(column=['obs','raw','adj'])? -
就是这样!!非常感谢!!
-
通过使用您的解决方案,我可以以某种方式缩放每个图的 y 轴吗??