【发布时间】:2022-01-27 01:11:10
【问题描述】:
我有一个包含两列(time_id 和 param1)的数据框。对于第 2 列(param1),我想根据时间创建一个箱线图。
但是我想把它分成三个(或 n 个)部分。这意味着箱线图中不仅有一个框,而且每个时间范围内只有一个框。 例如(n=3)一个基于值20,3,4,21,19[时间1-3]的框和一个基于8,9,18,6,4[时间4-6]的框等等
所以下面的代码创建了整列的箱线图。
import pandas as pd
# initialize data of lists.
data = {'time_id':[1,1,2,3,3,4,5,5,5,6,7,8,8,9],
'param1':[20,3,4,21,19,8,9,18,6,4,2,3,7,1]}
# Create DataFrame
df = pd.DataFrame(data)
boxplot = df.boxplot(column='param1')
将列分成三个框以使箱形图看起来像这样(示例性)是一种优雅的方法:
【问题讨论】:
-
应该将取值范围或元素个数分n组吗?假设像
[1, 1, 1, 2, 5, 5, 6, 7, 120, 121, 122, 123]这样的 time_it 系列。范围是1-2, 5-7, 120-123还是1-41, 42-82, 83-123? -
范围为 1-2、5-7 和 120-123。但实际上 stepsize 始终是相同的,分别没有 time_ids 的间隙。
标签: python pandas matplotlib