LLINK2233 2021-04-25 10:31 采纳率: 100%
浏览 373
已采纳

如何用React实现echarts可拖拽折线图?

希望用React实现一个echarts可拖拽折线图;

框架语言是React+JS,使用了echarts-for-react;

根据echarts官网上面的示例,在option{}中加入graphic组件,代码如下:

import ReactEcharts from 'echarts-for-react';
import React from 'react';

class MyEcharts extends React.Component {
  state = {
    option: {},
  };

  setOption = () => {
    const data = [
      [15, 0],
      [-50, 10],
      [-56.5, 20],
      [-46.5, 30],
      [-22.1, 40],
    ];
    const symbolSize = 20;
    const option = {
      xAxis: {
        min: -100,
        max: 80,
        type: 'value',
        axisLine: { onZero: false },
      },
      yAxis: {
        min: -30,
        max: 60,
        type: 'value',
        axisLine: { onZero: false },
      },
      series: [
        {
          id: 'a',
          type: 'line',
          smooth: true,
          symbolSize,
          data,
        },
      ],

      graphic: data.map(function (item, dataIndex) {
        return {
          type: 'circle',
          position: myChart.convertToPixel('grid', item),
          shape: {
            cx: 0,
            cy: 0,
            r: symbolSize / 2,
          },
          invisible: true,
          draggable: true,
          ondrag(dx, dy) {
            onPointDragging(dataIndex, [this.x, this.y]);
          },
          z: 100,
        };
      }),
    };

    function onPointDragging(dataIndex, pos) {
      data[dataIndex] = myChart.convertFromPixel('grid', pos);
    }

    myChart.on('dataZoom', updatePosition);

    function updatePosition() {
      myChart.setOption({
        graphic: data.map(function (item, dataIndex) {
          return {
            position: myChart.convertToPixel('grid', item),
          };
        }),
      });
    }

    //   // Update data

    myChart.setOption({
      series: [
        {
          id: 'a',
          data,
        },
      ],
    });

    this.setState({
      option,
    });
  };

  render() {
    return (
      <ReactEcharts
        style={{
          marginTop: '20px',
          height: '400px',
          border: '1px solid rgb(204 20 204 / 0.5)',
          paddingTop: '10px',
          borderRadius: '6px',
        }}
        option={this.setOption()}
      />
    );
  }
}
export default MyEcharts;

浏览器报错 :ReferenceError: myChart is not defined

请问该如何修改我的代码?

如果大佬可以上传具体代码的话,感激不尽!

 

 

 

  • 写回答

2条回答 默认 最新

  • a718089112 2021-04-25 11:18
    关注
    // 你要自己定义一个对象,意思是,你要把图表显示到你页面那个位置  加到你代码第5行就行
    var myChart = echarts.init(document.getElementById('main'));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)