JS插件:ECharts-数据图表化-事件

主要内容: tooltip.formatter / events.legendselectchanged

一、折线图

echart官网

1. 先引入:echarts.common.min.js /或者: echarts.js

2. 为ECharts准备一个具备大小的DIV容器

3. js:设置参数初始化图表

1 <head>
2     <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
3     <meta charset="utf-8" />
4     <script src="/Scripts/jquery-2.js"></script>
5     <script type="text/javascript" src="/Scripts/echarts.min.js"></script>
6     <title>EChart图片测试</title>
7 </head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 600px;height:400px;"></div>
</body>

<script>
    window.onload = function () { loadChasrt() };
    function loadChasrt() {
        var dateList = ["2018-12-14 14:00:21", "2018-12-15 14:00:21", "2018-12-18 11:00:21", "2018-12-18 13:59:58"];
        var CrackValue =[2,1,12,11] ;
        var TiltAngle  =[12,11,22,11] ;
        var Temperature = [16, 11, 12, 15];
        var option = GetDefaultOption(‘长度-角度关系图‘, dateList);
        option.legend.data = ["长度", "角度", "温度"];
        option.yAxis = [
                       { boundaryGap: [0, ‘50%‘], type: ‘value‘, name: ‘长度‘, position: ‘left‘, offset: 0, splitNumber: 0, splitLine: { show: true, } },
                       { boundaryGap: [0, ‘50%‘], type: ‘value‘, name: ‘角度‘, position: ‘right‘, offset: 0, splitNumber: 0, splitLine: { show: true, } },
                       { boundaryGap: [0, ‘50%‘], type: ‘value‘, name: ‘温度‘, position: ‘right‘, offset: 50, splitNumber: 0, splitLine: { show: true, } },
        ]
        option.series.push({ name: ‘长度‘, type: ‘line‘, stack: ‘‘, data: CrackValue, yAxisIndex: 0, symbol: ‘none‘ })
        option.series.push({ name: ‘角度‘, type: ‘line‘, stack: ‘‘, data: TiltAngle, yAxisIndex: 1, symbol: ‘none‘ })
        option.series.push({ name: ‘温度‘, type: ‘line‘, stack: ‘‘, data: Temperature, yAxisIndex: 2, symbol: ‘none‘ })
        option.tooltip = {
            trigger: ‘axis‘ 

        };
        var myChart = echarts.init(document.getElementById(‘main‘));
        myChart.setOption(option);

    } 

    //获取图表初始化
    function GetDefaultOption(name, dataX) {
        return {
            title: { text: name, x: ‘center‘, y: ‘top‘ },
            tooltip: { trigger: ‘axis‘ },
            legend: { data: [], x: ‘left‘, y: ‘top‘ },
            dataZoom: { show: true, start: 0 },
            grid: { left: ‘3%‘, right: ‘4%‘, bottom: ‘3%‘, containLabel: true },
            toolbox: { feature: { saveAsImage: {}, dataZoom: {}, restore: {} } },
            xAxis: { type: ‘category‘, boundaryGap: false, data: dataX },
            yAxis: { type: ‘value‘ },
            series: []
        };
    }

</script>

:JS参数配置

二、设置悬浮提示(tooltip):鼠标悬浮时文字提示

官网文档-配置项 : http://www.echartsjs.com/option.html#legend.tooltip

自定义函数设置内容:

1 option.tooltip = {
2     trigger: ‘axis‘,
3     backgroundColor: ‘rgba(50,50,50,0.7)‘,
4     formatter: formatterSettingFun
5 }
 1 function formatterSettingFun(params, ticket, callback) {
 2          var res = ‘<div><p>注意:‘ + params[0].name + ‘</p></div>‘
 3         for (var i = 0; i < params.length; i++) {
 4             var seriesName = String(params[i].seriesName);
 5             var titleName = seriesName+"值";
 6             var unit = "mm";
 7             if (i == 2)
 8             { unit = "°c"; }
 9             res += ‘<p  ><span  style=" background-color:‘ + params[i].color + ‘; display:inline-block ;  width:10PX;height:10PX;border-radius:50%;
10      filter:alpha(opacity=70); -moz-opacity:0.7;-khtml-opacity: 0.7;opacity: 0.7;">
11      </span>‘ + titleName + ‘:‘ + params[i].data + unit + ‘</p>‘
12         }
13         setTimeout(function () {
14             //// 仅为了模拟异步回调
15             //callback(ticket, res);
16         }, 1000)
17         return res;
18     }

官网文档-配置项

字体颜色样式设置:textStyle

 1  option.tooltip = {
 2             trigger: ‘axis‘,
 3             textStyle: {
 4                 color: ‘yellow‘,
 5                 decoration: ‘none‘,
 6                 fontFamily: ‘Verdana, sans-serif‘,
 7                 fontSize: 15,
 8                 fontStyle: ‘italic‘,
 9                 fontWeight: ‘bold‘
10             },
11             formatter: formatterSettingFun
12         };

三、设置图例(legend)为默认未选中状态、重写图例点击事件

图片初始化完成之后,清空图表重新设置:

   var myChart = echarts.init(document.getElementById(‘main‘));
        myChart.setOption(option);
        //设置默认为不选中状态
        var opt = myChart.getOption();
        opt["legend"][0]["selected"]["角度"] = false;
        myChart.clear();
        myChart.setOption(opt);

官网API:events.legendselectchanged

 1     //重写图例点击事件
 2         myChart.on(‘legendselectchanged‘, function (params) {
 3             alert(params.type);
 4             alert(params.name)
 5             alert(params.selected)
 6             var name = params.name;
 7             var Checked = params.selected[‘角度‘];
 8             if (name == ‘角度‘) {
 9
10             }
11
12         });

完整的demo-源代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <script src="/Scripts/jquery-2.js"></script>
    <script type="text/javascript" src="/Scripts/echarts.min.js"></script>
    <title>EChart图片测试</title>
</head>

<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 600px;height:400px;"></div>
</body>
</html>

<script>
    window.onload = function () { loadChasrt() };
    function loadChasrt() {
        var dateList = ["2018-12-14 14:00:21", "2018-12-15 14:00:21", "2018-12-18 11:00:21", "2018-12-18 13:59:58"];
        var CrackValue =[2,1,12,11] ;
        var TiltAngle  =[12,11,22,11] ;
        var Temperature = [16, 11, 12, 15];
        var option = GetDefaultOption(‘长度-角度关系图‘, dateList);
        option.legend.data = ["长度", "角度", "温度"];
        option.yAxis = [
                       { boundaryGap: [0, ‘50%‘], type: ‘value‘, name: ‘长度‘, position: ‘left‘, offset: 0, splitNumber: 0, splitLine: { show: true, } },
                       { boundaryGap: [0, ‘50%‘], type: ‘value‘, name: ‘角度‘, position: ‘right‘, offset: 0, splitNumber: 0, splitLine: { show: true, } },
                       { boundaryGap: [0, ‘50%‘], type: ‘value‘, name: ‘温度‘, position: ‘right‘, offset: 50, splitNumber: 0, splitLine: { show: true, } },
        ]
        option.series.push({ name: ‘长度‘, type: ‘line‘, stack: ‘‘, data: CrackValue, yAxisIndex: 0, symbol: ‘none‘ })
        option.series.push({ name: ‘角度‘, type: ‘line‘, stack: ‘‘, data: TiltAngle, yAxisIndex: 1, symbol: ‘none‘ })
        option.series.push({ name: ‘温度‘, type: ‘line‘, stack: ‘‘, data: Temperature, yAxisIndex: 2, symbol: ‘none‘ })
        option.tooltip = {
            trigger: ‘axis‘,
            formatter: formatterSettingFun
        };
        var myChart = echarts.init(document.getElementById(‘main‘));
        myChart.setOption(option);
        //设置默认为不选中状态
        var opt = myChart.getOption();
        opt["legend"][0]["selected"]["角度"] = false;
        myChart.clear();
        myChart.setOption(opt);

        myChart.on(‘legendselectchanged‘, function (params) {
            var name = params.name;
            var Checked = params.selected[‘角度‘];
            if (name == ‘角度‘) {
                alert(1)
            }

        });

    }
    function formatterSettingFun(params, ticket, callback) {
         var res = ‘<div><p>注意:‘ + params[0].name + ‘</p></div>‘
        for (var i = 0; i < params.length; i++) {
            var seriesName = String(params[i].seriesName);
            var titleName = seriesName+"值";
            var unit = "mm";
            if (i == 2)
            { unit = "°c"; }
            res += ‘<p ><span  style=" background-color:‘ + params[i].color + ‘; display:inline-block ;  width:10PX;height:10PX;border-radius:50%;  opacity:0.5;"> </span>‘ + titleName + ‘:‘ + params[i].data + unit + ‘</p>‘
        }
        setTimeout(function () {
            //// 仅为了模拟异步回调
            //callback(ticket, res);
        }, 1000)
        return res;
    }
    //获取图表初始化
    function GetDefaultOption(name, dataX) {
        return {
            title: { text: name, x: ‘center‘, y: ‘top‘ },
            tooltip: { trigger: ‘axis‘ },
            legend: { data: [], x: ‘left‘, y: ‘top‘ },
            dataZoom: { show: true, start: 0 },
            grid: { left: ‘3%‘, right: ‘4%‘, bottom: ‘3%‘, containLabel: true },
            toolbox: { feature: { saveAsImage: {}, dataZoom: {}, restore: {} } },
            xAxis: { type: ‘category‘, boundaryGap: false, data: dataX },
            yAxis: { type: ‘value‘ },
            series: []
        };
    }

</script>

原文地址:https://www.cnblogs.com/July-/p/10143169.html

时间: 2024-10-10 18:57:47

JS插件:ECharts-数据图表化-事件的相关文章

PPT设计的数据图表化表现

PPT中的数据图表化已经不是什么新鲜的事了.PPT作为一个陈述的辅助工具,视觉化效果还是相当重要的,当我们厌倦了无论是EXCEL做的图表也好,还是用其他工具做的PPT图表的时候,可以试着将数据图形化.今天和大家分享一下 1.将表格数据图形化 假设有这样一个PPT设计图表: 国家森林覆盖率日本 67%美国 33%中国 16.5% 在PPT中我们可以试着将它这样图形 在这个例子中要注意树木代表单位的统一,表现0.5%的方法.效果还是很直观的. 2.饼图的图形化 相对来说,饼图图形化更容易些.比如 注

数据图表插件Echarts(一)

一.引言 最近做一个智慧城市项目,项目中需要图表和报表进行数据分析,从网上找了很多,最后找到了百度开放的echarts,一个很强大的插件. 二.介绍 ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10/11,chrome,firefox,Safari等),底层依赖轻量级的Canvas类库ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化

百度图表数据插件echarts的初试

身为一个小前端,当得知需要在页面根据后台数据绘制统计数据的图表时,一筹莫展,幸好遇见了百度的ECharts插件,这款插件容易入手: 一下为初试: prepare.js//稍微封装,易于复用 /* *function getJson() *为获取后台的数据json *json.data为报表数据对应横轴的值 *json.name为报表横坐标的名称 */ function getJson(){ var jsondata = {}; jsondata.legendName = []; //图表的表面

JS插件:ECharts-数据图表化

一.官网 官网: http://www.echartsjs.com/ 上手:http://www.echartsjs.com/tutorial.html#5%20%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8B%20ECharts 二.例子 实例: 1. 先引入:echarts.common.min.js /或者: echarts.js 1 <head> 2 <meta charset="utf-8"> 3 <title>EC

数据视化Echarts+百度地图API实现市县区级下钻

开始 这两天公司有个页面需要做数据可视化的展示,数据视化采用的是Echarts+百度地图API做展示,需要用到县级区级下钻的一个联动效果发现网上关于Echarts做到县区级下钻的资料很少,有的话也不是很详细,对于刚接触Echarts的让人来说可能有些搞不明白,在这里我把Echarts下钻开发过程中总结的知识分享给大家,也能使自己加深印象,当然啦,对于一些在软件行业折腾了几年的老油条来说,这些都是一些非常基础的东西.但是还是希望能帮助到那些刚接触Echarts遇到类似问题需要帮助的人.如果哪里写的

ECharts 在同一个页面添加多个图表 并 给图表绑定事件

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86

通过百度echarts实现数据图表展示功能

现在我们在工作中,在开发中都会或多或少的用到图表统计数据显示给用户.通过图表可以很直观的,直接的将数据呈现出来.这里我就介绍说一下利用百度开源的echarts图表技术实现的具体功能. 1.对于不太理解echarts是个怎样技术的开发者来说,可以到echarts官网进行学习了解,官网有详细的API文档和实例供大家参考学习. 2.以下是我在工作中实现整理出来的实例源码: 公用的支持js文件 echarts.js.echarts.min.js,还有其他的图表需要支持的js文件也可以到官网下载 echa

easyUI draggable插件使用不当,导致拖动div内部文本框无法输入;设置echarts数据为空时就显示空白,不要动画和文字

先上一个Demo <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text

HTML5可互动的可视化图表js插件库

JointJS是一款可以进行互动的HTML5可视化图表js插件库.它可以用来创建静态图表,并且它拥有完全交互式绘图工具和应用程序生成器.jointjs可以很容易地创建各种各样的可视化工具. JointJS的事件驱动特性和MVC架构是它可以非常容易的集成到其它后台程序之中.JointJS的特点有: 支持多种图形元素(方形.圆形.椭圆形.文本.图像和路径) 支持多种知名的图表(ERD, Org chart, FSA, UML, PN, DEVS, ...) 支持基于SVG或编程的方式来定制图表 可以