【发布时间】:2026-01-10 04:45:01
【问题描述】:
我想绘制一个直方图,显示不同时间间隔内各种动作的频率。我想将动作的发生分为 10 分钟间隔。
binwidth = 10*60 #10 minutes
times = array([ 1.43431325e+09, 1.43431325e+09, 1.43431329e+09,
1.43431330e+09, 1.43431333e+09, 1.43431334e+09,
1.43431345e+09, 1.43431346e+09, 1.43431346e+09,
1.43431346e+09, 1.43431349e+09, 1.43431350e+09,
1.43431350e+09, 1.43431351e+09, 1.43431354e+09,
1.43431354e+09, 1.43431354e+09, 1.43431355e+09,
1.43431355e+09, 1.43431356e+09, 1.43431356e+09,
1.43431356e+09, 1.43431360e+09, 1.43431360e+09,
1.43431366e+09, 1.43431366e+09, 1.43431378e+09,
1.43431378e+09, 1.43431385e+09, 1.43431385e+09,
1.43431386e+09, 1.43431386e+09, 1.43431389e+09,
1.43431390e+09, 1.43431390e+09, 1.43431390e+09,
1.43431394e+09, 1.43431394e+09, 1.43431398e+09,
1.43431399e+09, 1.43431404e+09, 1.43431404e+09,
1.43431422e+09, 1.43431422e+09, 1.43431423e+09,
1.43431423e+09, 1.43431424e+09, 1.43431424e+09,
1.43431425e+09, 1.43431425e+09, 1.43431425e+09,
1.43431425e+09, 1.43431426e+09, 1.43431426e+09,
1.43431426e+09, 1.43431427e+09, 1.43431427e+09,
1.43431428e+09, 1.43431428e+09, 1.43431428e+09,
1.43431430e+09, 1.43431430e+09, 1.43431440e+09,
1.43431440e+09, 1.43431475e+09, 1.43431475e+09,
1.43431479e+09, 1.43431479e+09, 1.43431482e+09,
1.43431482e+09, 1.43431484e+09, 1.43431485e+09,
1.43431515e+09, 1.43431515e+09, 1.43431566e+09,
1.43431567e+09, 1.43431568e+09, 1.43431568e+09,
1.43431570e+09, 1.43431570e+09, 1.43431575e+09,
1.43431576e+09, 1.43431577e+09, 1.43431577e+09,
1.43431688e+09, 1.43431689e+09])
actions = array(['entry', 'exit', 'entry', 'exit', 'entry', 'exit', 'entry', 'exit',
'entry', 'exit', 'entry', 'exit', 'entry', 'exit', 'entry', 'exit',
'entry', 'exit', 'entry', 'exit', 'entry', 'exit', 'entry', 'exit',
'entry', 'exit', 'entry', 'exit', 'entry', 'exit', 'entry', 'exit',
'entry', 'exit', 'entry', 'exit', 'entry', 'exit', 'entry', 'exit',
'entry', 'exit', 'entry', 'check+', 'reward', 'reward', 'reward',
'reward', 'reward', 'complete', 'exit', 'entry', 'check+',
'reward', 'reward', 'reward', 'reward', 'reward', 'complete',
'exit', 'entry', 'exit', 'entry', 'exit', 'entry', 'exit', 'entry',
'exit', 'entry', 'exit', 'entry', 'exit', 'entry', 'exit', 'entry',
'exit', 'entry', 'exit', 'entry', 'exit', 'entry', 'exit', 'entry',
'exit', 'entry', 'exit'],
dtype='|S9')
在上面每个动作都有对应的时间。现在,如果我执行以下操作,我会得到显示每 10 分钟间隔时间频率的直方图。所以这告诉我每个 bin 中发生了多少操作,但不告诉我发生了哪些操作。
plt.hist(times, bins=np.arange(min(times), max(times) + binwidth, binwidth))
如何让每个 bin 显示每个操作的频率?
【问题讨论】:
-
做一个multi-histogram,过滤每个子直方图显示一个动作。
标签: python-3.x matplotlib histogram