211Echarts - 数据区域缩放(Error Scatter on Catesian)

简介: 211Echarts - 数据区域缩放(Error Scatter on Catesian)
效果图

源代码
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>ECharts</title>
    <!-- 引入 echarts.js -->
    <script src="js/echarts.min.js"></script>
    <script src="js/jquery-1.11.0.min.js"></script>
    <script src="dist/extension/dataTool.js"></script>
  </head>
  <body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 1024px;height:768px;"></div>
    <script type="text/javascript">
      // 基于准备好的dom,初始化echarts实例
      var myChart = echarts.init(document.getElementById('main'));
      var option;
      // Prime Costs and Prices for ACME Fashion\nCollection "Spring-Summer, 2016"
      // Data from https://playground.anychart.com/gallery/7.12.0/Error_Charts/Marker_Chart
      var dimensions = [
        'name', 'Price', 'Prime cost', 'Prime cost min', 'Prime cost max', 'Price min', 'Price max'
      ];
      var data = [
        ['Blouse "Blue Viola"', 101.88, 99.75, 76.75, 116.75, 69.88, 119.88],
        ['Dress "Daisy"', 155.8, 144.03, 126.03, 156.03, 129.8, 188.8],
        ['Trousers "Cutesy Classic"', 203.25, 173.56, 151.56, 187.56, 183.25, 249.25],
        ['Dress "Morning Dew"', 256, 120.5, 98.5, 136.5, 236, 279],
        ['Turtleneck "Dark Chocolate"', 408.89, 294.75, 276.75, 316.75, 385.89, 427.89],
        ['Jumper "Early Spring"', 427.36, 430.24, 407.24, 452.24, 399.36, 461.36],
        ['Breeches "Summer Mood"', 356, 135.5, 123.5, 151.5, 333, 387],
        ['Dress "Mauve Chamomile"', 406, 95.5, 73.5, 111.5, 366, 429],
        ['Dress "Flying Tits"', 527.36, 503.24, 488.24, 525.24, 485.36, 551.36],
        ['Dress "Singing Nightingales"', 587.36, 543.24, 518.24, 555.24, 559.36, 624.36],
        ['Sundress "Cloudy weather"', 603.36, 407.24, 392.24, 419.24, 581.36, 627.36],
        ['Sundress "East motives"', 633.36, 477.24, 445.24, 487.24, 594.36, 652.36],
        ['Sweater "Cold morning"', 517.36, 437.24, 416.24, 454.24, 488.36, 565.36],
        ['Trousers "Lavender Fields"', 443.36, 387.24, 370.24, 413.24, 412.36, 484.36],
        ['Jumper "Coffee with Milk"', 543.36, 307.24, 288.24, 317.24, 509.36, 574.36],
        ['Blouse "Blooming Cactus"', 790.36, 277.24, 254.24, 295.24, 764.36, 818.36],
        ['Sweater "Fluffy Comfort"', 790.34, 678.34, 660.34, 690.34, 762.34, 824.34]
      ];
      function renderItem(params, api) {
        var children = [];
        var coordDims = ['x', 'y'];
        for(var baseDimIdx = 0; baseDimIdx < 2; baseDimIdx++) {
          var otherDimIdx = 1 - baseDimIdx;
          var encode = params.encode;
          var baseValue = api.value(encode[coordDims[baseDimIdx]][0]);
          var param = [];
          param[baseDimIdx] = baseValue;
          param[otherDimIdx] = api.value(encode[coordDims[otherDimIdx]][1]);
          var highPoint = api.coord(param);
          param[otherDimIdx] = api.value(encode[coordDims[otherDimIdx]][2]);
          var lowPoint = api.coord(param);
          var halfWidth = 5;
          var style = api.style({
            stroke: api.visual('color'),
            fill: null
          });
          children.push({
            type: 'line',
            shape: makeShape(
              baseDimIdx,
              highPoint[baseDimIdx] - halfWidth, highPoint[otherDimIdx],
              highPoint[baseDimIdx] + halfWidth, highPoint[otherDimIdx]
            ),
            style: style
          }, {
            type: 'line',
            shape: makeShape(
              baseDimIdx,
              highPoint[baseDimIdx], highPoint[otherDimIdx],
              lowPoint[baseDimIdx], lowPoint[otherDimIdx]
            ),
            style: style
          }, {
            type: 'line',
            shape: makeShape(
              baseDimIdx,
              lowPoint[baseDimIdx] - halfWidth, lowPoint[otherDimIdx],
              lowPoint[baseDimIdx] + halfWidth, lowPoint[otherDimIdx]
            ),
            style: style
          });
        }
        function makeShape(baseDimIdx, base1, value1, base2, value2) {
          var shape = {};
          shape[coordDims[baseDimIdx] + '1'] = base1;
          shape[coordDims[1 - baseDimIdx] + '1'] = value1;
          shape[coordDims[baseDimIdx] + '2'] = base2;
          shape[coordDims[1 - baseDimIdx] + '2'] = value2;
          return shape;
        }
        return {
          type: 'group',
          children: children
        };
      }
      option = {
        tooltip: {},
        legend: {
          data: ['bar', 'error']
        },
        dataZoom: [{
          type: 'slider',
          height: 8,
          bottom: 20,
          borderColor: 'transparent',
          backgroundColor: '#e2e2e2',
          handleIcon: 'M10.7,11.9H9.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z', // jshint ignore:line
          handleSize: 20,
          handleStyle: {
            shadowBlur: 6,
            shadowOffsetX: 1,
            shadowOffsetY: 2,
            shadowColor: '#aaa'
          }
        }, {
          type: 'inside'
        }],
        grid: {
          bottom: 80
        },
        xAxis: {},
        yAxis: {},
        series: [{
          type: 'scatter',
          name: 'error',
          data: data,
          dimensions: dimensions,
          encode: {
            x: 2,
            y: 1,
            tooltip: [2, 1, 3, 4, 5, 6],
            itemName: 0
          },
          itemStyle: {
            normal: {
              color: '#77bef7'
            }
          }
        }, {
          type: 'custom',
          name: 'error',
          renderItem: renderItem,
          dimensions: dimensions,
          encode: {
            x: [2, 3, 4],
            y: [1, 5, 6],
            tooltip: [2, 1, 3, 4, 5, 6],
            itemName: 0
          },
          data: data,
          z: 100
        }]
      };
      myChart.setOption(option);
    </script>
  </body>
</html>
目录
相关文章
|
JSON JavaScript 定位技术
vue中使用echarts实现省市地图绘制,根据数据显示省市天气图标及温度信息
vue中使用echarts实现省市地图绘制,根据数据显示省市天气图标及温度信息
1674 1
|
前端开发 JavaScript BI
Django教程第5章 | Web开发实战-数据统计图表(echarts、highchart)
使用echarts和highcharts图表库实现折线图、柱状图、饼图和数据集图
400 2
|
前端开发 算法 数据可视化
怎么在echarts图上左右滑动切换数据区间
怎么在echarts图上左右滑动切换数据区间
667 0
|
数据可视化
echarts图表坐标轴数据标签添加下划线
echarts图表坐标轴数据标签添加下划线
481 0
|
JavaScript 定位技术
echarts地图数据信息流向图效果
本文介绍了如何使用 ECharts 创建一个地图数据信息流向图效果,包括设置地理坐标、线条动画和流向图的实现方法,并通过 Vue.js 封装了一个可重用的 ECharts 地图组件。
898 23
echarts地图数据信息流向图效果
|
JavaScript API
Echarts中单独为每个legend图例设置样式-根据数据正负显示不同样式
通过上述方法,我们便能够在ECharts中根据数据的正负为每个图例项设置不同的样式,增强了图表的可读性和表现力。这种方法虽然略显间接,但不失为一种灵活的解决方案。
2217 2
|
JavaScript 数据可视化 BI
echarts的使用 超好用的报表制作、数据的图形化展示
您提供的链接是关于echarts使用的博客文章,它介绍了如何使用echarts进行数据的图形化展示,包括制作报表和图表。echarts是一个强大的数据可视化工具,能够创建折线图、柱状图、饼图等多种图表类型。文章还提供了一个Demo演示和项目结构的图片,以及官网链接供读者参考。
echarts的使用 超好用的报表制作、数据的图形化展示
echarts中使用散点scatter更改颜色却不生效的问题
本文讨论了在ECharts中使用散点图(scatter)时更改颜色不生效的问题。原因是项目中使用了`visualMap`组件,它具有最高的优先级,导致自定义的颜色设置被覆盖。解决方法是在`visualMap`组件中增加`seriesIndex`属性,指定它只对特定的系列(series)生效,从而避免影响散点图的颜色设置。文章提供了详细的代码示例和解决办法。
443 3
|
JSON JavaScript 前端开发
vue中使用echarts实现省市地图绘制,根据数据在地图上显示柱状图信息,增加涟漪特效动画效果
vue中使用echarts实现省市地图绘制,根据数据在地图上显示柱状图信息,增加涟漪特效动画效果
4484 0
|
数据可视化 数据挖掘
ECharts综合案例一:近七天跑步数据
使用ECharts进行一周跑步数据分析,通过雷达图展示多维度指标(如距离、速度、时间),颜色对比体现个人与平均表现。折线图则清晰显示每日里程趋势,代码示例展示了自定义的`radar`和`line`图表配置。图表交互性强,支持点击高亮,动画流畅,提供完整代码资源。#ECharts #跑步数据 #数据可视化
460 3
ECharts综合案例一:近七天跑步数据