React中用EChart写面积图

UED出的设计图如下:

 实际展示效果如下:

调取的数据如下:

"staffCountList":[
            {
                "time":"2019-12-24 17:20",
                "staffCount":2
            },
            {
                "time":"2019-12-24 17:10",
                "staffCount":2
            },
            {
                "time":"2019-12-24 16:00",
                "staffCount":1
            },
            {
                "time":"2019-12-24 15:50",
                "staffCount":1
            },
            {
                "time":"2019-12-24 15:40",
                "staffCount":2
            },
            {
                "time":"2019-12-24 15:30",
                "staffCount":2
            },
            {
                "time":"2019-12-24 15:20",
                "staffCount":1
            },
            {
                "time":"2019-12-24 15:10",
                "staffCount":1
            },
            {
                "time":"2019-12-24 15:00",
                "staffCount":1
            },
            {
                "time":"2019-12-24 14:50",
                "staffCount":2
            },
            {
                "time":"2019-12-24 14:40",
                "staffCount":2
            },
            {
                "time":"2019-12-24 14:30",
                "staffCount":2
            },
            {
                "time":"2019-12-24 14:20",
                "staffCount":1
            },
            {
                "time":"2019-12-24 14:10",
                "staffCount":1
            },
            {
                "time":"2019-12-24 14:00",
                "staffCount":1
            }
        ]

react代码操作步骤:

  1. 根据官方文档说明的“在 webpack 中使用 ECharts”,用 npm 安装 ECharts:npm install echarts --save
  2. 引入 ECharts:通过 npm 上安装的 ECharts 和 zrender 会放在node_modules目录下。可以直接在项目代码中 require(‘echarts‘) 得到 ECharts。
  3. 由于我的数据是在store里面获取的,第一次挂载的时候,是获取不到数据的,会报错。如果把以下内容写在非生命周期函数里面,会获取不到dom 的 id,也会报“Cannot read property ‘getAttribute‘ of null问题”错
  4. 所以我把echart内容写在componentWillUpdate里面,就可以
//import 下面引入
var echarts = require(‘echarts‘);

 componentWillUpdate = () => {
        const { staffCountList = [] } = this.props.monitorStore

        //渲染图表
        if (staffCountList) {  //有数据才渲染
            const time = staffCountList.map((v) => {       //洗数据
                const obj = v.time;  //2019-12-23 17:56    从给的日期截取时间
                const shotTime = obj.substring(10, 16)
                return shotTime
            })

            const yDate = staffCountList.map((v) => {
                const obj = v.staffCount;
                return obj
            })

            //监控图表,必须放在didMount里面
            var myChart = echarts.init(document.getElementById(‘staffChats‘));

            // 绘制图表
            myChart.setOption({       //这里内部可以从echarts官网实例根据你的需要获取数据,根据需求在配置项手册查看不同的配置项进行修改
                tooltip: {
                    trigger: ‘axis‘,
                    position: function (pt) {
                        return [pt[0], ‘10%‘];
                    }
                },
                xAxis: {
                    type: ‘category‘,
                    boundaryGap: false,
                    data: time,
                    textStyle: {   //坐标字体样式
                        color: ‘#AEAEAE‘
                    },
                    axisLine: {   //坐标线
                        show: false
                    },
                    axisTick: {  //坐标刻度
                        show: false
                    },
                },
                yAxis: {
                    type: ‘value‘,
                    boundaryGap: [0, ‘100%‘],
                    textStyle: {
                        color: ‘#AEAEAE‘
                    },
                    axisLine: {
                        show: false
                    },
                    axisTick: {
                        show: false
                    },
                },
                grid: {    //图表相对div位置
                    left: ‘0‘,
                    right: ‘15%‘,
                    bottom: ‘10%‘,
                    top: ‘10%‘,
                    containLabel: true
                },
                series: [   //鼠标移动到图表上,显示的提示
                    {
                        name: ‘上线客服数‘,
                        type: ‘line‘,
                        smooth: true,
                        symbol: ‘none‘,
                        sampling: ‘average‘,
                        itemStyle: {
                            color: ‘rgb(93, 179, 230)‘
                        },
                        areaStyle: {   //面积图面积部分颜色
                            color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                                offset: 0,
                                color: ‘rgb(150, 218, 244,0.6)‘   //上部颜色
                            }, {
                                offset: 1,
                                color: ‘rgb(93, 179, 230, 0.1)‘   //下部颜色
                            }])
                        },
                        data: yDate
                    }
                ]
            });
        }
    }

//render
 <div className={styles.staffMonitor} id="staffChats">

</div>

EChart配置项手册

原文地址:https://www.cnblogs.com/rong88/p/12092753.html

时间: 2024-08-10 00:13:21

React中用EChart写面积图的相关文章

echart折线区域图

在引入echart区域折线图时,没有出现对应的区域图 当发现引入下面代码到自己的代码中并没有对应的区域图 option = { xAxis: { type: 'category', boundaryGap: false, data: mydata.xname(改成自己的数据) }, yAxis: { type: 'value' }, series: [{ data: mydata.ydata,(改成自己的数据) type: 'line', areaStyle: {} }] };[这里写链接内容]

XCL-Charts画面积图(AreaChart) 例1

面积图的一个例子,做面积图时发现注释位置放图上方更好处理.改了下. 面积图的网格和轴处理与其它图不一样, 它是用覆盖的范围来表示其势力范围,标签轴无需在突出一段出来.这里处理了下. 代码: //图基类 chart = new AreaChart(); //图所占范围大小 chart.setChartRange(0, 0, this.mScrWidth , this.mScrHeight ); //标签1对应的数据集 LinkedList<Double> valueA= new LinkedLi

第四篇:R语言数据可视化之折线图、堆积图、堆积面积图

前言 折线图通常用来对两个连续变量的依存关系进行可视化,其中横轴很多时候是时间轴. 但横轴也不一定是连续型变量,可以是有序的离散型变量. 绘制基本折线图 本例选用如下测试数据集: 绘制方法是首先调用ggplot函数选定数据集,并在aes参数中指明横轴纵轴.然后调用条形图函数geom_line()便可绘制出基本折线图.R语言示例代码如下: # 基函数 ggplot(BOD, aes(x = Time, y = demand)) + # 折线图函数 geom_line()     运行结果: 向折线

初探ggplot2 geom__制作面积图

大家大概都对如下信息图并不陌生,该图用100%堆积面积图的方式来表现不同时期不同国家人数所占的比例.这是一种很有意思的表达方式,而面积图也是很常用的数据图表,现在让我们一起来看看如何在R里用ggplot2和plot.area来制作一个面积图. 在制作图表之前,首先我们先创建一些随机示例数据.R代码如下: 1 # 创建随机数 2 set.seed(3) 3 # 创建时间序列(0-20的time step) 4 t.step<-seq(0,20) 5 # 创建十组变量名(从a到j) 6 grps<

css中用一张背景图做页面的技术有什么优势?

简单介绍一下 CSS Sprites 的优点: 当用户往U盘中拷200张图片,会等很久.但是如果弄成一个文件,再拷贝就会快很多. CSS Sprites 的目的就是通过整合图片,减少对服务器的请求数量,从而加快页面加载 速度. 实现方法: 首先将小图片整合到一张大的图片上 然后根据具体图标在大图上的位置,给背景定位.background-position:-8px -95px;或者简写background:url(图片路径) no-repeat 8px -95px; 转载于: http://ui

最新版FusionCharts2D面积图

1.实现源码 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+reque

数据可视化:Echart中k图实现动态阈值报警

1 目标 使用Echart的k图展现上下阈值,并且当真实值超过上阈值或低于下阈值时候,标红报警. 2 实现效果 如下: 3 代码 1)头文件,引用jquery.js和echart.js;其中,jquery是实现ajax读取数据的,echart负责数据前端可视化. <head> <meta charset="utf-8"> <title>ECharts</title> <!-- 引入 echarts.js --> <scr

Matplotlib学习---用matplotlib画面积图(area chart)

这里利用Nathan Yau所著的<鲜活的数据:数据可视化指南>一书中的数据,学习画图. 数据地址:http://book.flowingdata.com/ch05/data/us-population-by-age.xls 准备工作:先导入matplotlib和pandas,用pandas读取excel文件,然后创建一个图像和一个坐标轴 import pandas as pd from matplotlib import pyplot as plt population=pd.read_ex

面积图

y=[2 ,4,5; 3,1,9; 5,3,5; 2,6,1] area(y) %第一列绘图:第一列加第二列绘图:第一列加第二列加第三列绘图: grid on colormap summer % 设置当前图层的颜色 set(gca,'layer','top') %将面积图的图层设置为最顶层 原文地址:https://www.cnblogs.com/Airboy1/p/9534105.html