echarts 配置

echarts 配置

简单例子

  • 如下

      // 基于准备好的dom,初始化echarts实例
            var myChart = echarts.init(document.getElementById('main'));
    
            // 指定图表的配置项和数据
            var option = {
                title: {
                    text: 'ECharts 入门示例'
                },
                tooltip: {},
                legend: {
                    data:['销量']
                },
                xAxis: {
                    data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
                },
                yAxis: {},
                series: [{
                    name: '销量',
                    type: 'bar',
                    data: [5, 20, 36, 10, 10, 20]
                }]
            };
    
            // 使用刚指定的配置项和数据显示图表。
            myChart.setOption(option);
    

饼图(pie)

  • 标题设置

     title: {
                text: '学生生源地来源分布图',
                subtext: '模拟数据',
                // x 设置水平安放位置,默认左对齐,可选值:'center' ¦ 'left' ¦ 'right' ¦ {number}(x坐标,单位px)
                x: 'center',
                // y 设置垂直安放位置,默认全图顶端,可选值:'top' ¦ 'bottom' ¦ 'center' ¦ {number}(y坐标,单位px)
                y: 'top',
                // itemGap设置主副标题纵向间隔,单位px,默认为10,
                itemGap: 30,
                backgroundColor: '#EEE',
                // 主标题文本样式设置
                textStyle: {
                  fontSize: 26,
                  fontWeight: 'bolder',
                  color: '#000080'
                },
                // 副标题文本样式设置
                subtextStyle: {
                  fontSize: 18,
                  color: '#8B2323'
                }
              },
    
  • 图例设置

    legend: {
                // orient 设置布局方式,默认水平布局,
                // 可选值:'horizontal'(水平) ¦ 'vertical'(垂直)
                orient: 'vertical',
                // x 设置水平安放位置,默认全图居中,
                // 可选值:'center' ¦ 'left' ¦ 'right' ¦ {number}(x坐标,单位px)
                x: 'left',
                // y 设置垂直安放位置,默认全图顶端,
                // 可选值:'top' ¦ 'bottom' ¦ 'center' ¦ {number}(y坐标,单位px)
                y: 'center',
                itemWidth: 24,   // 设置图例图形的宽
                itemHeight: 18,  // 设置图例图形的高
                textStyle: {
                  color: '#666'  // 图例文字颜色
                },
                // itemGap设置各个item之间的间隔,单位px,默认为10,横向布局时为水平间隔,
              //纵向布局时为纵向间隔
                itemGap: 30,
                backgroundColor: '#eee',  // 设置整个图例区域背景颜色
                data: ['北京','上海','广州','深圳','郑州']
         },
    
  • 值域设置

    series: [
                {
                  name: '生源地',
                  type: 'pie',
                  // radius: '50%',  // 设置饼状图大小,100%时,最大直径=整个图形的min(宽,高)
                  radius: ['30%', '60%'],  // 设置环形饼状图, 
                                       // 第一个百分数设置内圈大小,第二个百分数设置外圈大小
                  center: ['50%', '50%'],  // 设置饼状图位置,第一个百分数调水平位置,
                                       // 第二个百分数调垂直位置
                  data: [
                      {value:335, name:'北京'},
                      {value:310, name:'上海'},
                      {value:234, name:'广州'},
                      {value:135, name:'深圳'},
                      {value:148, name:'郑州'}
                  ],
                  // itemStyle 设置饼状图扇形区域样式
                  itemStyle: {
                    // emphasis:英文意思是 强调;着重;(轮廓、图形等的)鲜明;突出,重读
                    // emphasis:设置鼠标放到哪一块扇形上面的时候,扇形样式、阴影
                    emphasis: {
                      shadowBlur: 10,
                      shadowOffsetX: 0,
                      shadowColor: 'rgba(30, 144, 255,0.5)'
                    }
                  },
                  // 设置值域的那指向线
                  labelLine: {
                    normal: {
                      show: false   // show设置线是否显示,默认为true,可选值:true ¦ false
                    }
                  },
                  // 设置值域的标签
                  label: {
                    normal: {
                      position: 'inner',  // 设置标签位置,默认在饼状图外 
                        //可选值:'outer' ¦ 'inner(饼状图上)'
                      // formatter: '{a} {b} : {c}个 ({d}%)'   设置标签显示内容 ,默认显示{b}
                      // {a}指series.name  {b}指series.data的name
                      // {c}指series.data的value  {d}%指这一部分占总数的百分比
                      formatter: '{c}'
                    }
                  }
                }
              ],
    
  • 提示框

     tooltip: {
                // trigger 设置触发类型,默认数据触发,可选值:'item' ¦ 'axis'
                trigger: 'item',
                showDelay: 20,   // 显示延迟,添加显示延迟可以避免频繁切换,单位ms
                hideDelay: 20,   // 隐藏延迟,单位ms
                backgroundColor: 'rgba(255,0,0,0.7)',  // 提示框背景颜色
                textStyle: {
                  fontSize: '16px',
                  color: '#000'  // 设置文本颜色 默认#FFF
                },
                // formatter设置提示框显示内容
                // {a}指series.name  {b}指series.data的name
                // {c}指series.data的value  {d}%指这一部分占总数的百分比
                formatter: '{a} <br/>{b} : {c}个 ({d}%)'
             },
    

无数据提示/回调函数

function initBar(domId,data){
    //测试数据
    let data=[
             ['Mon',820], ['Tue',932],['Wed',901],
             ['Thu',934],['Fri',1290],['Sat',1330],['Sun',1320],
        ]
        
    ]
    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById(domId));
    //显示正在加载框
    myChart.showLoading({
        text: '数据正在努力加载...',
        textStyle: { fontSize : 30 , color: '#444' },
        effectOption: {backgroundColor: 'rgba(0, 0, 0, 0)'}
    });
    //清除旧数据
    myChart.clear()
    console.log("绘制柱状图开始....");
    // 指定图表的配置项和数据
    var option = {
    xAxis: {
        type: 'category',
    },
    yAxis: {
        type: 'value'
    },
    series: [{
        data: data,
        type: 'line'
    }]
};
    //当数据为空时
    if (!data){
        option={
            title: {
                text: '暂无数据',
                x: 'center',
                y: 'center',
                textStyle: {
                    color: '#070707',
                    fontWeight: 'normal',
                    fontSize: 16
                }
            }
        }
    }
    // 使用刚指定的配置项和数据显示图表。
    myChart.setOption(option);
    //showLoading遮盖层隐藏
    myChart.hideLoading();
    //图表绘制完成后
    myChart.on('finished',() => {
        console.log("执行一次");
    })

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