前端综合专辑Web前端之路让前端飞

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

2017-08-17  本文已影响136人  杳北

主要涉及要点:

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

先上图:

三张图共用顶部伸缩轴

然后贴上源码地址:

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

再啰嗦几句:

// 自定义图形,此处需要使用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: [{  // 不同折线片段不同颜色
  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'
      }]
  }, …
]
上一篇下一篇

猜你喜欢

热点阅读