echarts使用

Posted l8l8

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了echarts使用相关的知识,希望对你有一定的参考价值。

import React,{ PureComponent } from ‘react‘;
// import { routerRedux } from ‘dva/router‘;
import { connect } from ‘dva‘;
import ReactEcharts from ‘echarts-for-react‘;
// import echarts from ‘echarts/lib/echarts‘;
// import G6 from ‘@ali/g6‘;
import { Graph } from ‘g6-for-react‘;

@connect(({ performancetesting }) => {
  return performancetesting;
})

export default class Performancetesting extends PureComponent {
   componentDidMount() {
    // const data = {
    //     "nodes": [
    //       {
    //         "x": 140,
    //         "y": 210,
    //         "id": "node1"
    //       },
    //       {
    //         "x": 270,
    //         "y": 210,
    //         "id": "node2"
    //       }
    //     ],
    //     "edges": [
    //       {
    //         "source": "node1",
    //         "id": "edge1",
    //         "target": "node2"
    //       }
    //     ]
    //   };
    // const net = new G6.Net({
    //     id: ‘c1‘,      // 容器ID
    //     width: 500,    // 画布宽
    //     height: 500    // 画布高
    //   });
    //   net.source(data.nodes, data.edges);
    //   net.render();
   }  

  getG6Demo = () => {
    const data = {
        "nodes": [
          {
            "x": 140,
            "y": 210,
            "id": "node1"
          },
          {
            "x": 270,
            "y": 210,
            "id": "node2",
            style: {               // 关键形样式(优先级高于color)
                fill: ‘red‘,
                stroke: ‘blue‘
              },  
          }
        ],
        "edges": [
          {
            "source": "node1",
            "id": "edge1",
            "target": "node2"
          }
        ]
      };
    return <Graph fitView=‘cc‘ data={data} height={500} animate />
  }

  G2Demo = () => {
    const data = [
        { type: ‘序列1‘, year: ‘1991‘, value: 3 },
        { type: ‘序列1‘, year: ‘1992‘, value: 4 },
        { type: ‘序列1‘, year: ‘1993‘, value: 3.5 },
        { type: ‘序列1‘, year: ‘1994‘, value: 5 },
        { type: ‘序列1‘, year: ‘1995‘, value: 4.9 },
        { type: ‘序列1‘, year: ‘1996‘, value: 6 },
        { type: ‘序列1‘, year: ‘1997‘, value: 7 },
        { type: ‘序列1‘, year: ‘1998‘, value: 9 },
        { type: ‘序列1‘, year: ‘1999‘, value: 13 },
        { type: ‘序列2‘, year: ‘1991‘, value: 6 },
        { type: ‘序列2‘, year: ‘1992‘, value: 8 },
        { type: ‘序列2‘, year: ‘1993‘, value: 5.5 },
        { type: ‘序列2‘, year: ‘1994‘, value: 7 },
        { type: ‘序列2‘, year: ‘1995‘, value: 9.9 },
        { type: ‘序列2‘, year: ‘1996‘, value: 6 },
        { type: ‘序列2‘, year: ‘1997‘, value: 5 },
        { type: ‘序列2‘, year: ‘2000‘, value: 10 },
        { type: ‘序列2‘, year: ‘1999‘, value: 19 },
        { type: ‘序列3‘, year: ‘1991‘, value: 2 },
        { type: ‘序列3‘, year: ‘1992‘, value: 6 },
        { type: ‘序列3‘, year: ‘1993‘, value: 9 },
        { type: ‘序列3‘, year: ‘1994‘, value: 10 },
        { type: ‘序列3‘, year: ‘1995‘, value: 15 },
        { type: ‘序列3‘, year: ‘1996‘, value: 8 },
        { type: ‘序列3‘, year: ‘1997‘, value: 5 },
        { type: ‘序列3‘, year: ‘1998‘, value: 4.6 },
        { type: ‘序列3‘, year: ‘2000‘, value: 4 },
      ];
    const arr = [];
    data.forEach(item => {
      if (!arr.includes(item.type)) {
        arr.push(item.type);
      }
    })
    const year = Array.from(new Set(data.map(item => item.year)));
    const series = arr.map(item => {
      const yearData = {};
      data.filter(item1 => {
        return item === item1.type
      }).sort((a, b) => Number(a.year) - Number(b.year)).forEach(d => {
        yearData[d.year] = d.value;
      })
      return {
        name: item,
        type:‘line‘,
        // xAxisIndex: 1,
        smooth: true,
        data: year.map(y => yearData[y])
      };
    })
    const option1 = {
      title: {
        text: ‘demo‘,
        left: ‘center‘
      },
      xAxis: {
        type: ‘category‘,
        boundaryGap: false,
        data: year
      },
      yAxis:  {},
      tooltip: {
        show: true,
        trigger: ‘axis‘
      },
      dataZoom: [{
        type: ‘inside‘,
        start: 0,
        end: 10
        }, {
            start: 0,
            end: 10,
            handleIcon: ‘M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.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.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z‘,
            handleSize: ‘80%‘,
            handleStyle: {
                color: ‘#fff‘,
                shadowBlur: 3,
                shadowColor: ‘rgba(0, 0, 0, 0.6)‘,
                shadowOffsetX: 2,
                shadowOffsetY: 2
            }
        }],
    series
    };
    return (
      <ReactEcharts
        option={option1}
        style={{height: 400}} 
      />
       );
  }

  render(){
    let base = +new Date(1968, 9, 3);
    const oneDay = 24 * 3600 * 1000;
    const date = [];
    const data = [Math.random() * 300];

    for (let i = 1; i < 20000; i++) {
        const now = new Date(base += oneDay);
        date.push([now.getFullYear(), now.getMonth() + 1, now.getDate()].join(‘/‘));
        data.push(Math.round((Math.random() - 0.5) * 20 + data[i - 1]));
    }
    const option = {
        tooltip: {
            trigger: ‘axis‘,
            position: (pt) => {
                return [pt[0], ‘10%‘];
            }
        },
        title: {
            left: ‘center‘,
            text: ‘大数据量面积图‘,
        },
        toolbox: {
            feature: {
                dataView: {readOnly: false},
                dataZoom: {
                    yAxisIndex: ‘none‘
                },
                magicType: {
                    type: [‘line‘, ‘bar‘, ‘stack‘, ‘tiled‘],
                    show: true
                  },
                restore: {},
                saveAsImage: {},
            }
        },
        xAxis: {
            type: ‘category‘,
            boundaryGap: false,
            data: date
        },
        yAxis: {
            type: ‘value‘,
            boundaryGap: [0, ‘100%‘]
        },
        dataZoom: [{
            type: ‘inside‘,
            start: 0,
            end: 10
        }, {
            start: 0,
            end: 10,
            handleIcon: ‘M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.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.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z‘,
            handleSize: ‘80%‘,
            handleStyle: {
                color: ‘#fff‘,
                shadowBlur: 3,
                shadowColor: ‘rgba(0, 0, 0, 0.6)‘,
                shadowOffsetX: 2,
                shadowOffsetY: 2
            }
        }],
        series: [
            {
                name:‘模拟数据‘,
                type:‘line‘,
                smooth:true,
                symbol: ‘none‘,
                sampling: ‘average‘,
                itemStyle: {
                    color: ‘rgb(255, 70, 131)‘
                },
                areaStyle: {
                  color: {
                    type: ‘linear‘,
                    x: 0,
                    y: 0,
                    x2: 0,
                    y2: 1,
                    colorStops: [{
                        offset: 0, color: ‘red‘ // 0% 处的颜色
                    }, {
                        offset: 1, color: ‘blue‘ // 100% 处的颜色
                    }],
                    globalCoord: false // 缺省为 false
                  },
                  smooth: true,
                  sampling: ‘average‘
                },
                data,
                markPoint: {
                  data: [
                    {type: ‘max‘, name:‘最大值‘},
                    {type: ‘min‘ ,name: ‘最小值‘}
                  ]
                }
            }
        ]
    };
    return (
      <div>Performancetesting
        <ReactEcharts
          option={option}
          style={{height: 400}} 
        />
        {this.G2Demo()}
        {this.getG6Demo()}
      </div>
    );
  }
} 

 

以上是关于echarts使用的主要内容,如果未能解决你的问题,请参考以下文章

Echarts 如何防止内存泄漏

使用ECharts画K线图

vue2+echarts:使用后台传输的json数据去动态渲染echarts图表

vue2+echarts:使用后台传输的json数据去动态渲染echarts图表

Echarts 自适应报表

eCharts 使用