Echarts案例

此文主要用来记录自己对于Echarts的使用吧,毕竟Echarts的属性那么多,好记性不如烂笔头。以下所有案例使用的是Echarts3。

案例1--多变的坐标轴

案例1是在移动端页面中实践,需求简单,要求效果如下:


案例1截图

1.1 X轴刻度标签间断显示(axisTick&axisLabel)

如案例一所示,x轴的间隔变大,这个通过axisTick(坐标轴刻度)axisLabel(坐标轴刻度标签)来实现

xAxis: {
        axisLine:{
            show:false, //不显示轴线
        },
        axisTick:{
            show:false, //不显示坐标轴刻度
        },
        axisLabel:{
            interval: 4, //坐标轴刻度标签间隔为4
        },
        type: 'category',
        boundaryGap: false,
        data: ['07-08','','','','','07-22','','','','','08-12','']
    }

1.2 图例组件位置(legend)

Echarts中图例默认是在图标上方,所以需要设置legend中位置属性(top,left,right,bottom)来控制其摆放

legend: {
        bottom: '3%',
        itemWidth:10,
        itemHeight:5,
        data:[
            {
                name:'招聘一部',
                icon:'roundRect',
                textStyle:{
                    color:'#999',
                },
                itemHeight:1,
            },
            {
                name:'招聘二部',
                icon:'roundRect',
                textStyle:{
                    color:'#999',
                },
                itemHeight:1,
            },
            {
                name:'招聘三部',
                icon:'roundRect',
                textStyle:{
                    color:'#999',
                },
                itemHeight:1,
            },]
    }

案例2--两组非负数据的对称显示

案例2是给测试小姐姐写的一个网站访问域名统计数据的展示页面,没有设计,所以界面比较素了。如下图所示,统计数据总体由月度、季度以及年度划分;每个时间粒度下的数据又分为线上和线下数据,线上和线下数据需要对比显示。


案例2截图

2.1 一张图对称显示两块数据

想要两块数据左右对称显示,(1)首先需要两个数据对象,所以series中需要两个数据对象

series中设置两个数据对象

(2)另外,需要一边数据值为负值,如果两边数据都为正值,那么就需要手动将一方的数据值转换成负值。然后显示时,再转换成正值

2.2 自定义tooltip

自定义的tooltip需要通过tooltop. formatter属性来设置。提示框浮层内容格式器,支持字符串模板和回调函数两种。
(1)字符串模板
字符串模板通过已经定义好的模板变量自由组合而成。模板变量有 {a}, {b},{c},{d},{e},分别表示系列名,数据名,数据值等。可以通过 {a0}, {a1}, {a2} 这种后面加索引的方式表示系列的索引。 不同图表类型下的 {a},{b},{c},{d} 含义不一样,更详细内容,可以查看官方文档
(2)回调函数
回调函数的实现格式如下:

(params: Object|Array, ticket: string, callback: (ticket: string, html: string)) => string

第一个参数params是各个系列的数据集,当只有一个系列时,是一个object;当图中有多个系列时,则是一个包含多个对象的array。params中包含的对象如下:

{
    componentType: 'series',
    // 系列类型
    seriesType: string,
    // 系列在传入的 option.series 中的 index
    seriesIndex: number,
    // 系列名称
    seriesName: string,
    // 数据名,类目名
    name: string,
    // 数据在传入的 data 数组中的 index
    dataIndex: number,
    // 传入的原始数据项
    data: Object,
    // 传入的数据值
    value: number|Array,
    // 数据图形的颜色
    color: string,

    // 饼图的百分比
    percent: number,

这是Echarts官网给出的params对象的各个属性。

params.marker

但官网好像并没罗列params中的全部属性,比如我想在提示中添加所属系列的圆表,marker这个属性在官方文档中就找不到,想知道params中都有哪些属性,可以将其在浏览器中打印出来。
params对象

第二个参数 ticket 是异步回调标识,配合第三个参数 callback 使用。 第三个参数 callback 是异步回调,在提示框浮层内容是异步获取的时候,可以通过 callback 传入上述的 ticket 和 html 更新提示框浮层内容。在实践中没有使用,想要详细了解,可以查看官方文档

案例3--多数据情况下的滚动/缩放显示

案例3是实现一个城市活跃度的柱状图,由于城市众多,一屏页面很难较为细致地展示,所以需要在保留每个城市数据细节的同时展示全部城市数据。这个自然而然便想到滚动显示多屏,Echarts当然是有这项功能的。
dataZoom 组件 用于区域缩放,从而能自由关注细节的数据信息,或者概览数据整体,或者去除离群点的影响。dataZoom组件有三类,内置型数据区域缩放组件(dataZoomInside)、滑动条型数据区域缩放组件(dataZoomSlider)以及
框选型数据区域缩放组件(dataZoomSelect)。
内置型数据区域缩放组件,在图标区域左右滚动,改变X轴的显示区域,其展示效果如下官方Demo地址


滑动条型数据区域缩放组件,是在图表X、Y轴之外添加滑动条,用以控制数据展示范围和展示密度,其展示效果如下官方Demo地址

在本案例中,我们使用的是dataZoomSlider组件,其配置如下:

dataZoom:[
    {
        type: 'slider',  // 类型
        show: true,  // 是否展示滑动
        // xAxisIndex: [0],
        start: 1,  // 展示范围开始
        end: 50,   // 展示范围开始 
        height: 20,
        bottom: 0
    },
  ],

dataZoom配置项是一个数组,因为在其中可以对多个坐标轴同时进行控制,而且同一个坐标轴也可以加入不同类型的dataZoom组件,比如X轴中同时加入缩放以及滑动组件:

    dataZoom: [
        // x轴滑动组件
        {
            type: 'slider',
            show: true,
            xAxisIndex: [0],
            start: 1,
            end: 35
        },
        // x轴区域缩放组件
        {
            type: 'inside',
            xAxisIndex: [0],
            start: 1,
            end: 35
        },
    ],

本案例中只是对dataZoom基础功能的使用,其实它可以满足更为复杂的需求,想要深入了解,可以查看Echarts的官方文档。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容