weixin_40099025 2018-12-05 07:50 采纳率: 0%
浏览 211

求一个符合这种情况的算法

图片说明

            黑色竖轴为时间轴:长度已经限定了手机屏幕的高度,不做拉伸
            红色的点:代表事件的发生时间,一个红点一个事件
            (同一水平线上的时间表示一致)

            问题:怎么样合理的分配竖轴的长度去表示时间差,使得可以完整的表现的一天的发生的事件情况。(场景:假如在12-01,发生了三个事件,分别是,8:00,8:01,8:02,在12-02发生了一个事件,是8:10,我希望竖轴只显8:00-8:10这一段时间,其他可以不显示,但是如果在12-02发生的事件是22:00,我希望竖轴显示8:00-22:00这一个时间段)竖轴的长度确定了,怎么去合理分段,使几天内发生的事件均可显示出来,竖轴的时间差可以合理的分配长度
  • 写回答

1条回答 默认 最新

  • 猿码叔叔 2024-05-14 11:23
    关注

    首先两个不同的日期发生的事件会存在随机性。如果你需要展示某一个时间段的事件分布图,这个时间段可以是 2 个小时也可以是 3 个小时,最大是 24 个小时,然后在那条时间线长度不变的情况下来分布这个时间段的事件点,我们可以考虑这么来解决:
    1、确认时间段的起点可终点。比如你希望展示 8:00 - 8:10 分这个时间段内的所有事件。那么起点和终点就是 8:00 和 8:10。
    2、对这个时间段内的事件进行去重,重复的事件叠加展示。不重复的根据时间线的刻度来展示就行了。
    3、不同的时间段其实都是一样的,只是比例不一样。如果我们按照分钟作为时间段的刻度单位,8:00 - 8:10 在时间线上应该会有 10 个刻度单位。对于 8:06:35 和 8:06:40 两个事件应当叠加展示在同一个刻度。因为我们是以分钟为单位的。对于 8:00 - 19:00 这个时间段,就是 (19 - 8) * 60 个刻度单位。

    评论

报告相同问题?