单个折线图引入事件

2019.04.10旧链接失效了,,貌似被误删、?放一个新的

https://github.com/Goddywu/EchartWithEvents

 https://goddywu.github.io/EchartWithEvents/


折线图在波动比较大时,我们往往需要添加标注信息,来说明波动的原因。

此篇文章用于介绍通过echarts的graphic配置项达到添加 ‘事件’ 的目的。

先放一个在线demo哈: https://goddywu.github.io/Echarts/

github项目链接https://github.com/Goddywu/Echarts


1. 明确项目要求

    在以下折线图的一月三号及一月五号添加 分别为 “去食堂”和“下馆子”的信息。

我们目前有的数据为

xAxisData:["01-01","01-02","01-03","01-04","01-05","01-06","01-07"];

yAxisData:[20,23, 15, 26, 50, 28, 22];

eventsData:[ { "date": "01-03", "content": "去食堂" }, { "date": "01-05", "content": "下馆子" }]


2. 解决思路

因为事件的纵向位置无关紧要,现在只看横向位置。

我们需要找到每个事件在x轴的位置。笔者是找出x轴第一项以及最后一项分别距离折线图画布左侧的宽度。通过知道事件对应时间在x轴的位置,以便找出事件对应的时间距离折线图画布左侧的宽度,从而判断 事件 放到折线图横向的位置。

关于找出事件在x轴的位置,以下有两种思路

a. 遍历时间数组,找到该事件对应时间数组的index,从而知道其位置

b. 通过时间数组的首尾时间,‘01-01’和‘01-07’来判断事件大概在x轴的横向位置

第一种方法需要时间数组包含事件的时间,适用于数据量小的折线图。

第二种方法适用于数据量较大的折线图。(因为大数据,无法知晓 事件的时间是否包含在时间数组中。)但是,该方法在某些特殊情况下,不能准确的对齐时间轴。


3. 配置事件属性


4. 定义找时间差的方法

var timeCompare=function(time1,time2){

      var time1S=time1.split('-')[1];

      var time2S=time2.split('-')[1];

      return (time1S*1-time2S*1);

}


5. 计算事件的横向位置


6. 配置echarts的option


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 说明: 已将折线图封装到了一个UIView子类中,并提供了相应的接口。若你遇到相应的需求可以直接将文件拖到项目中,...
    AHLQ阅读 12,163评论 5 47
  • 之前自学的时候也使用过echarts来制作柱状图,折线图,地图,现在想想那时候做的简直是太LOW了,就是简单的在官...
    _信仰zmh阅读 82,689评论 23 66
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,626评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,095评论 25 709
  • 平水韵:十四寒 秋日佳时应逐欢,西楼孤客却凭栏。夜寒月冷霜凝露,酒醒魂销思忆叹。
    傅逸尘阅读 1,616评论 0 6

友情链接更多精彩内容