echart使用

trigger() 方法触发被选元素的指定事件类型。

pie:饼图  line:折线图  bar:柱状图  scatter:散点图

1:数据的异步加载与更新

很多时候可能数据需要异步加载后再填入。ECharts 中实现异步数据的更新非常简单,在图表初始化后不管任何时候只要通过 jQuery 等工具异步获取数据后通过 setOption 填入数据和配置项就行。

一个简单的栗子:

首先先将框架搭好:

    <body>
        <div id="main" style="width: 600px;height:400px;"></div>
    </body>
    <script>
var myChart = echarts.init(document.getElementById(‘main‘));
// 显示标题,图例和空的坐标轴
myChart.setOption({
    title: {
        text: ‘当月发车趋势图‘
    },
    tooltip: {},
    legend: {
        data:[‘发车量‘]
    },
    xAxis: {
        data: []
    },
    yAxis: {},
    series: [{
        name: ‘发车量‘,
        type: ‘line‘,
        data: []
    }]
});

其次,我们利用异步加载或得所需要的数据 并将其填入xAxis(横坐标)与series(你的直线图或者柱状图的高度,也就是代表的数据),如下:

function getMonthOfDay() {
    var paraYear=new Date().getFullYear();
    var paraMonth=new Date().getMonth()+1;
    var everyDay=[];
    var monthStartDate = new Date(paraYear, paraMonth-1, 1);
    var monthEndDate = new Date(paraYear, paraMonth, 1);
    var  days  =  (monthEndDate  -  monthStartDate)/(1000  *  60  *  60  *  24);   
    for (var i=0;i<days;i++) {
        everyDay.push(paraMonth+"/"+(i+1))
    }
    return everyDay;
}
console.log(getMonthOfDay());
var provinceId=[];
var totalNumber=[];
// 异步加载数据

$.ajax({
    type:"get",
    url:"test.json",
    success:function (data) {

        console.log(data)
        for(var i=0;i<data.length;i++){
            provinceId[i]=data[i].provinceId;
            totalNumber[i]=data[i].totalNumber;
        }

        myChart.setOption({
        xAxis: {
            data:getMonthOfDay()
        },
        series: [{
            // 根据名字对应到相应的系列
            name: ‘发车量‘,
            data: totalNumber
        }]
    });
    }
});

更新:

ECharts 由数据驱动,数据的改变驱动图表展现的改变,因此动态数据的实现也变得异常简单。

所有数据的更新都通过 setOption实现,你只需要定时获取数据,setOption 填入数据,而不用考虑数据到底产生了那些变化,ECharts 会找到两组数据之间的差异然后通过合适的动画去表现数据的变化。

上图就是所展现出的折线图。

2:组件

dataZoom :『概览数据整体,按需关注数据细节』是数据可视化的基本交互需求。dataZoom 组件能够在直角坐标系(grid)、极坐标系(polar)中实现这一功能。

xAxisIndex: 0,代表的是X轴显示
 yAxisIndex: 0,代表的是Y轴显示
start:代表开始所占的百分比end:代表结束的百分比
 dataZoom: [
        {
            type: ‘slider‘,
            xAxisIndex: 0,
            start: 10,
            end: 60
        },
        {
            type: ‘inside‘,
            xAxisIndex: 0,
            start: 10,
            end: 60
        },
        {
            type: ‘slider‘,
            yAxisIndex: 0,
            start: 30,
            end: 80
        },
        {
            type: ‘inside‘,
            yAxisIndex: 0,
            start: 30,
            end: 80
        }
    ],
3:移动端的自适应-利用Media Query 

media: [
    ...,
    {
        query: {
            maxAspectRatio: 1           // 当长宽比小于1时。
        },
        option: {
            legend: {                   // legend 放在底部中间。
                right: ‘center‘,
                bottom: 0,
                orient: ‘horizontal‘    // legend 横向布局。
            },
            series: [                   // 两个饼图左右布局。
                {
                    radius: [20, ‘50%‘],
                    center: [‘50%‘, ‘30%‘]
                },
                {
                    radius: [30, ‘50%‘],
                    center: [‘50%‘, ‘70%‘]
                }
            ]
        }
    },
    {
        query: {
            maxWidth: 500               // 当容器宽度小于 500 时。
        },
        option: {
            legend: {
                right: 10,              // legend 放置在右侧中间。
                top: ‘15%‘,
                orient: ‘vertical‘      // 纵向布局。
            },
            series: [                   // 两个饼图上下布局。
                {
                    radius: [20, ‘50%‘],
                    center: [‘50%‘, ‘30%‘]
                },
                {
                    radius: [30, ‘50%‘],
                    center: [‘50%‘, ‘75%‘]
                }
            ]
        }
    },
    ...
]

4:右上角的显示

 toolbox: {
        feature: {
            dataView: {show: true, readOnly: false},
            magicType: {show: true, type: [‘line‘, ‘bar‘]},
            restore: {show: true},
            saveAsImage: {show: true}
        }
    },

控制Y轴的数字:

min:从0开始

max:250结束

interval:单位间隔为多少

yAxis: 两个代表左右Y轴、
type: ‘shadow‘ 代表的是鼠标放在x轴的某一值得范围上时 图标显示出阴影部分
xAxis: [
        {
            type: ‘category‘,
            data: [‘1月‘,‘2月‘,‘3月‘,‘4月‘,‘5月‘,‘6月‘,‘7月‘,‘8月‘,‘9月‘,‘10月‘,‘11月‘,‘12月‘],
            axisPointer: {
                type: ‘shadow‘
            }
        }
    ],
    yAxis: [
        {
            type: ‘value‘,
            name: ‘水量‘,
            min: 0,
            max: 250,
            interval: 50,
            axisLabel: {
                formatter: ‘{value} ml‘
            }
        },
        {
            type: ‘value‘,
            name: ‘温度‘,
            min: 0,
            max: 25,
            interval: 5,
            axisLabel: {
                formatter: ‘{value} °C‘
            }
        }
    ],
时间: 2024-10-24 23:39:41

echart使用的相关文章

echart.js的使用与API

---恢复内容开始--- echart.js的使用与API 1.echart.js的使用: 第一步:在head标签或body下创建一个script标签去引用echart.js,(该文件可以在echart的官方首页下载最新最全面的js文件,官网:http://echart.baidu.com): <script src="./js/echarts.js"></script> 第二步:并在body中创建一个具备大小的dom(div): <div id=&quo

Echart 使用图表简单示例

简单应用方式: <div id="main"></div> 引用Echart <script src="js/echarts.common.min.js"></script> var myChart = echarts.init(document.getElementById('main')); option={ ...配置项 } myChart.setOption(option); 配置项设置: //两边留白: bo

Echart饼图、柱状图、折线图(pie、bar、line)加入点击事件

var myChart= echarts.init(document.getElementById('myChart')); myChart.on('click', function (param) { alert('点击了我!'); }); Echart事件參数能够去config.js查找

EChart报表插件使用笔记(1)

报表插件Echart java类 package com.spring.controller; import java.io.IOException; import java.util.Arrays; import java.util.Date; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net

Echart数据报表

应用场景:可视化报表统计 1.引入echart.js(可以去官方下载) 2.js代码写入 category 代表分类(日期)以数组的形式传入 price 代表价格 以数组的形式传入 num 代表单量 数组的形式传入 // 基于准备好的dom,初始化echarts图表     function chart(category,price,num){       var myChart = echarts.init(document.getElementById('main'));         v

vue模块化(echart+element ui)

最近看了下vue的框架,随手做了个项目,记录分享下 技术框架: vue.js + webpack + element ui + echart 首先看下npm package.js 上面的图 主要是配置的是npm 打包命令 和引入vue-route vue的路由文件 和element ui 文件 下面这个是 引入echart.js 文件, 基本资料就这些. 首先我们开始构建一个vue-cli项目 1.首先node环境(这里就不多啰嗦了) 2.执行vue-cli命令 npm install --gl

百度开源e-chart初探

前言: 近年来,在数据服务的公司中,数据可视化越来越重要.随着而来的,国内外正在如火如荼的开发各种在线js视图展示框架.而百度的e-chart算是实用性较高且体验最好的!今天闲来无事,便来玩玩~ echart自我介绍: "基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.创新的拖拽重计算.数据视图.值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘.整合的能力." 1资源下载 下载路径(http://echarts.baidu

百度的echart环形图颜色动态设置

自己参与的有一个项目需要用到环行图,考虑到百度的echart功能很强大兼容性又挺好就使用了这个插件,但是在颜色配置的时候出现了问题按照参考文档的方法是用color:Array这样的形式,但是不知道在哪里设置,在网上查了有两种说法,一种是直接在option里面配置  但是我试了之后直接报错了,还有一种是在>series->itemStyle->normal里面,但是设置之后奇怪的事情发生了,无论设置什么颜色都变成了黑色,至少改变了原来自带的颜色说明这个路径是对的,后来发现可以·用函数的方法

echart+jquery+json统计TP数据

由于工作需要,需要统计交易数据的TP50,TP90,TP95,TP99.采用的前端技术是jquery+json+echart. 一.TP定义(谷歌) Calculating TP is very simple: 1. Sort all times in ascending order: [2s, 10s, 100s, 1000s] 2. find latest item in portion you need to calculate. 2.1 For TP50 it will be ceil(

网站中使用echart

在网站开发中,可能会使用折线图,圆饼图,等等 来丰富网页对数据的展示,可以使用echart http://echarts.baidu.com/tutorial.html#5%20%E5%88%86%E9%92%9F%E4%B8%8A%E6%89%8B%20ECharts 可以参考这个网址,快速上手 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>EChar