Echarts共用x伸缩轴+折线图区间变色+自定义散点图形状

主要涉及要点:

  • 多图共用同一个伸缩x轴
  • 折线图区间变色
  • 自定义散点图的数据点形状

先上图:

三张图共用顶部伸缩轴

然后贴上源码地址:

https://github.com/EarthMonkey/JianShu/tree/master/echarts

再啰嗦几句:

  • 散点图的自定义形状
    • series中的type需要设置为custom
    • 另外需要使用renderIterm重写渲染方法(代码中有详细注释)
    • 其中自定义的非常规形状需要用到svg路径画图,此处安利一个svg路径转换的在线工具,使用方法也很简单:
      画完图后通过view>source(ctrl+U)来获取svg源码,然后将<path d=""/>中的d属性复制出来即可。若无d属性,则回到画图页面通过object>Convert to Path转换一下
// 自定义图形,此处需要使用svg路径
// 依次是圆形、三角形、五边形
var svgPath = [
    "m76.5,124.5c0,-8.56354 6.93646,-15.5 15.5,-15.5c8.56354,0 15.5,6.93646 15.5,15.5c0,8.56354 -6.93646,15.5 -15.5,15.5c-8.56354,0 -15.5,-6.93646 -15.5,-15.5z",
    "m63.1875,76.61313l17,-29.75l17,29.75l-34,0z",
    "m70.1525,87.86015l19.49998,-14.18729l19.50002,14.18729l-7.44831,22.95561l-24.10335,0l-7.44833,-22.95561z"
];
var colors = ['red', 'orange', 'green'];
function renderItem(params, api) {
    var val = api.value(2);
    if (val == 0) {
        return;
    }
    var xPos = api.value(1);  // 此处为xAxis数据的数组下标
    var yPos = api.value(0);
    var point = api.coord([yPos, xPos]); // 定位
    var itemSize = val * 10;  // 此处指定图形的大小,不同值不同大小
    return {
        type: 'path',  // 此处设置svg路径类型
        shape: {
            pathData: svgPath[xPos], // 图形的svg路径
            width: itemSize,
            height: itemSize,
            x: -itemSize / 2,
            y: -itemSize / 2
        },
        position: point,  // 将图形放到本该在的位置
        style: api.style({
            fill: colors[xPos]  // 图形颜色
        })
    }
}
  • 折线图区间变色
    • 此处用了visualMap的属性
    • 若一个option中有多条不同颜色的line需要根据不同区间来变不同的颜色,则初始化一个visualMap数组,并且在visualMap中指定seriesIndex的路径,而不是在seriesIndex中指定visualMapIndex
visualMap: [{  // 不同折线片段不同颜色
  show: false,
  dimension: 1,  // 0-垂直方向;1-水平方向
  seriesIndex: 0,
  pieces: [{
      gt: 0,
      lte: data1.avg,
      color: 'red',
      colorAlpha: 0.2  // 颜色透明度
  }, {
      gt: data1.avg,
      lte: 10000,  // 不知道为什么这里不设置一个上限就会出错
      color: 'red'
      }]
  }, …
]
  • 上面这两个是当初觉着比较“辣手”的,其他就不啰嗦了,直接看示例代码吧
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 11,947评论 4 60
  • 我对学习的看法: 1.学习是人的本能。树立学习信心。端正学习态度。 婴儿学走路,学说话。任何正常人都会学会走路,任...
    水果大师阅读 4,224评论 0 2
  • 第一篇文章不知从何处开始,就想写点东西记录一下,相识于2008年,喜欢你在2009年,至明年的2018年我们认识...
    叉着腰的女汉子阅读 133评论 0 1
  • 他为什么相信这个观点,找到理由有提示词,理由是模具,结论据此成型,轮到你自己写诗可得吸收教训, 只有问一问别人为什...
    三不主义阅读 716评论 0 1
  • 前端多线程 web worker 是运行在后台的 JavaScript,不会影响页面的性能。 什么是 Web Wo...
    河的左岸阅读 295评论 0 0