react使用echarts完整细节实例(后台数据渲染&&布局实现)

1、这是我使用echarts实现的两种图表

  • 折线图

在这里插入图片描述

  • 柱状图

在这里插入图片描述

2、折线图实现

  • 首先导入必须的包,在这之前进行安装
npm install echarts --save

在这里插入图片描述

// 引入 ECharts 主模块
import echarts from 'echarts/lib/echarts';
// 引入柱状图
import 'echarts/lib/chart/line';
// 引入图例
import 'echarts/lib/component/legend';
// 引入提示框和标题组件
import 'echarts/lib/component/tooltip';
import 'echarts/lib/component/title';
  • 图表数据格式渲染
    直接复制官网的即可,注意几个细节就行
    1、设置标题样式
  title: {
        text: `${companyName} ${startDate}-${endDate}设备报修数量分析图`,
        left: 'center',
        top: '10px'
      },

2、设置图例

     legend: {
        data: typeNameList,  // 后台数据
        top: '35px',
        left: '70%'
      },

3、难一点的是折线图数据的渲染

 series: typeAndNumList

官网实例
在这里插入图片描述
从后台获取数据渲染的方式是:for…in

    // 渲染图表数据
    const typeAndNumList = [];
    for (const key in typeNameList) {
      const and = {};
      and.name = typeNameList[key],
        and.type = "line",
        and.stack = "总量",
        and.data = monthNumberList[key].numberList;
      typeAndNumList.push(and)
    }

3、柱状图实现

  1. 同样先引入
// 引入 ECharts 主模块
import echarts from 'echarts/lib/echarts';
// 引入柱状图
import 'echarts/lib/chart/bar';
// 引入提示框和标题组件
import 'echarts/lib/component/tooltip';
import 'echarts/lib/component/title';

2、这里也许会遇到一个问题
当你的X轴标签分类名字很长的时候,会间隔显示标签,而不是全部显示
在这里插入图片描述
在这里我们只需要设置强制显示全部标签就行了

   axisLabel: {
              interval:0,// 代表显示所有x轴标签显示
          }
      xAxis: [
        {
          type: 'category',
          data: ['受理环节(报修/已审批>处理)', '审批环节(提交审批>审批结束)','维修环节(派工>维修完成)','整理流程(报修>结束)', ],
          axisTick: {
            alignWithLabel: true,
          },
          axisLabel: {
              interval:0,// 代表显示所有x轴标签显示
          }
        }
      ],
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要在项目中引入 echarts 和百度地图的 JS 库。可以通过 npm 安装,也可以直接在 html 中引入。 然后,在组件中引入 echarts 和百度地图的 JS 库,并创建一个 div 作为容器,用于存放 echarts 和地图。 ```jsx import React, { useEffect, useRef } from 'react'; import echarts from 'echarts'; import 'echarts-gl/dist/echarts-gl'; import 'echarts/map/js/world'; import BMap from 'BMap'; const MapChart = ({ data }) => { const chartRef = useRef(null); useEffect(() => { if (chartRef.current) { const myChart = echarts.init(chartRef.current); const option = { tooltip: { trigger: 'item', formatter: '{b}' }, series: [ { type: 'map3d', map: 'world', roam: true, itemStyle: { areaColor: '#fff', borderColor: '#333' }, label: { show: true }, data: [] } ] }; myChart.setOption(option); const map = new BMap.Map(chartRef.current); map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); map.enableScrollWheelZoom(true); const overlay = new BMap.Overlay(); overlay.initialize = function (map) { this._map = map; const div = document.createElement('div'); div.style.position = 'absolute'; div.style.width = '10px'; div.style.height = '10px'; div.style.background = '#f00'; map.getPanes().labelPane.appendChild(div); this._div = div; return div; }; overlay.draw = function () { const position = map.pointToOverlayPixel(new BMap.Point(116.404, 39.915)); this._div.style.left = position.x + 'px'; this._div.style.top = position.y + 'px'; }; map.addOverlay(overlay); } }, [data]); return <div ref={chartRef} style={{ width: '100%', height: '600px' }} />; }; export default MapChart; ``` 在 useEffect 中,先初始化 echarts 实例,然后创建地图,并将 echarts 实例与地图容器绑定。然后,初始化地图,并添加一个自定义的覆盖物。 这里的 data 是从 props 中传递过来的,可以根据需要进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值