echarts柱形图,仪表盘,饼图、环形图的样式配置

一、vue下安装:

npm install echarts --save

局部引入:import echarts from 'echarts'

创建echarts对象:var myChart = echarts.init(document.getElementById('right_piebox'))  注意:装图表的盒子必须设置宽高

设置option,:myChart.setOption(option)

二、图解图标区域

三、环形图:

var option = {
        color: ['#1AFFFD', '#FEE581', '#06B8F8', '#FF5C58', '#AD5FF'], // 设置环形图各个区块的颜色
        // 点击每块区域的弹出层显示
        tooltip: {
          trigger: 'item', // 标题
          formatter: '{a} <br/>{b}: {c} ({d}%)' // 数据的显示方式
        },
        // 设置环形图项
        legend: {
          orient: 'vertical', // 图项的显示方式,垂直显示
          x: 'left', // 靠左显示,不写此项默认居中显示
          textStyle: {
            color: '#fff' // 图项字体颜色
          },
          data: ['直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎'] // 图项名称
        },
        // 配置环形图的显示与数据
        series: [
          {
            name: '访问来源', // 弹出层图表名称
            type: 'pie', // 饼图
            radius: ['40%', '50%'], // 40%内环圆心大小,若为0则为饼图,50%:外环圆心大小
            avoidLabelOverlap: false, // 是否启用防止标签重叠策略,默认开启,false则都居中显示,在标签拥挤重叠的情况下会挪动各个标签的位置,防止标签间的重叠。
            label: {
              normal: {
                show: false, // 标签不显示,鼠标滑过才显示
                position: 'center' // 高亮时标签显示在中间,不写默认显示侧边
              },
              // 高亮图区的标签样式
              emphasis: {
                show: true,
                // 修改环形中间字体样式
                textStyle: {
                  fontSize: '18',
                  fontWeight: 'bold',
                  color: '#fff'
                }
              }
            },
            // 标签的引导线
            labelLine: {
              normal: {
                show: false // 标签的引导线不显示,若显示还可设置线的样式,参考echart文档
              }
            },
            // 展示数据
            data: [
              { value: 335, name: '直接访问' },
              { value: 310, name: '邮件营销' },
              { value: 234, name: '联盟广告' },
              { value: 135, name: '视频广告' },
              { value: 1548, name: '搜索引擎' }
            ]
          }
        ]
      }

四、柱状图

var option = {
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            crossStyle: {
              color: '#999'
            }
          }
        },
        // 网格相关配置
        grid: {
          height: '120' 
        },
        color: ['#1AFFFD', '#FFCB89'], // 修改图形颜色
        // 工具栏
        toolbox: {
          feature: {
            dataView: { show: true, readOnly: false }, // 数据视图
            magicType: { show: true, type: ['line', 'bar'] }, // 图形切换
            restore: { show: true }, // 还原
            saveAsImage: { show: true } // 保存图片
          }
        },
        // 图项设置
        legend: {
          data: ['蒸发量', '降水量', '平均温度'],
          textStyle: { // 图列内容样式
            color: '#fff' // 字体颜色
          }
        },
        // x轴设置
        xAxis: [
          {
            type: 'category', // x轴类型,类目轴,value:数值轴,展示连续数据 time:时间轴
            data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
            nameTextStyle: { // 坐标轴名称样式
              color: '#fff',
              padding: [5, 0, 0, -5]
            },
            nameGap: 15, // 坐标轴名称与轴线之间的距离
            axisLine: { // 坐标轴 轴线
              show: true, // 是否显示
              symbol: ['none', 'arrow'], // 是否显示轴线箭头
              symbolSize: [8, 8], // 箭头大小
              symbolOffset: [0, 7], // 箭头位置
              // ------   线 ---------
              lineStyle: {
                color: '#fff',
                width: 1,
                type: 'solid'
              }
            },
            axisLabel: { // 坐标轴标签
              show: true, // 是否显示
              inside: false, // 是否朝内
              rotate: 0, // 旋转角度
              margin: 5, // 刻度标签与轴线之间的距离
              color: '#fff' // 默认取轴线的颜色
            },
            axisPointer: {
              type: 'shadow'
            }
          }
        ],
        // y坐标相关
        yAxis: [
          {
            type: 'value',
            name: '水量',
            min: 0, // y坐标刻度最小值
            max: 250, // y坐标刻度最大值
            interval: 50, // 强制设置坐标轴分割间隔为50
            axisLine: { // 坐标轴 轴线
              show: true, // 是否显示
              //  -----   箭头 -----
              symbol: ['none', 'arrow'], // 是否显示轴线箭头
              symbolSize: [8, 8], // 箭头大小
              symbolOffset: [0, 7], // 箭头位置
              // ----- y轴线样式 -------
              lineStyle: {
                color: '#fff',
                width: 1,
                type: 'solid'
              }
            },
            axisLabel: { // 坐标轴的标签
              formatter: '{value} ml', // 显示模板
              show: true, // 是否显示
              inside: false, // 是否朝内
              rotate: 0, // 旋转角度
              margin: 8, // 刻度标签与轴线之间的距离
              color: '#fff' // 默认轴线的颜色
            }
          },
          {
            type: 'value',
            name: '温度',
            min: 0,
            max: 25,
            interval: 5,
            axisLine: { // 坐标轴 轴线
              show: true, // 是否显示
              //  -----   箭头 -----
              symbol: ['none', 'arrow'], // 是否显示轴线箭头
              symbolSize: [8, 8], // 箭头大小
              symbolOffset: [0, 7], // 箭头位置
              // ----- 线 -------
              lineStyle: {
                color: '#fff',
                width: 1,
                type: 'solid'
              }
            },
            axisLabel: { // 坐标轴的标签
              formatter: '{value} °C',
              show: true, // 是否显示
              inside: false, // 是否朝内
              rotate: 0, // 旋转角度
              margin: 8, // 刻度标签与轴线之间的距离
              color: '#fff' // 默认轴线的颜色
            }
          }
        ],
        // 系列列表。每个系列通过 type 决定自己的图表类型
        series: [
          {
            name: '蒸发量',
            type: 'bar', // 柱状图
            data: [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
          },
          {
            name: '降水量',
            type: 'bar',
            data: [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]
          },
          {
            name: '平均温度',
            type: 'line', // 折线
            yAxisIndex: 1,
            data: [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2]
          }
        ]
      }

展示:

五、仪表盘

var option = {
        tooltip: {
          formatter: '{a} <br/>{b} : {c}%' // 弹出层显示格式
        },
        // 工具栏
        toolbox: {
          feature: {
            restore: {}, // 还原
            saveAsImage: {} // 保存图片
          },
          right: '20'
        },
        // 图表整体相关配置
        series: [
          {
            name: '业务指标',
            type: 'gauge', // 类型:仪表盘
            startAngle: 180, // 开始角度 左侧角度
            endAngle: 0, // 结束角度 右侧
            center: ['50%', '80%'], // 默认全局居中
            radius: '130%', // 圆大小
            detail: { formatter: '{value}%' },
            axisLine: { // 设置仪表盘颜色范围
              lineStyle: { // 属性lineStyle控制线条样式
                color: [
                  [25 / 100, '#2E7CFF'], // 0-25为改颜色样式
                  [70 / 100, '#1AFFFD'], // 25-70为改颜色样式
                  [100, '#FFCB89'] // 75-100为该颜色样式
                ],
                width: 10, // 半径(环的宽度)
                shadowColor: '#fff', // 默认透明
                shadowBlur: 1
              }
            },
            title: {
              textStyle: {
                color: '#fff' // 标题样式(完成率)
              }
            },
            data: [{ value: 50, name: '完成率' }]
          }
        ]
      }
      setInterval(function() {
        // 实时改变data的值
        option.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0
        my_barChart.setOption(option, true)
      }, 1000)

 效果图:

六、折线柱状混合图

var option = {
        // 提示框组件
        tooltip: {
          trigger: 'axis', // 触发类型:坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用
          // 坐标轴指示器配置项
          axisPointer: {
            type: 'cross' // 类型:十字架指示器
          }
        },
        // 工具栏
        toolbox: {
          show: true,
          feature: {
            saveAsImage: {} // 保存图片
          }
        },
        color: ['#1AFFFD'], // 柱形图颜色
        // x轴配置
        xAxis: {
          type: 'category', // 类型:类目轴
          boundaryGap: false, // 坐标轴两边留白策略,类目轴和非类目轴的设置和表现不一样,设置为true则在item则在刻度之间显示
          nameTextStyle: { // 坐标轴名称样式
            color: '#fff',
            padding: [5, 0, 0, -5]
          },
          nameGap: 15, // 坐标轴名称与轴线之间的距离
          axisLine: { // 坐标轴 轴线
            show: true, // 是否显示
            symbol: ['none', 'arrow'], // 是否显示轴线箭头
            symbolSize: [8, 8], // 箭头大小
            symbolOffset: [0, 7], // 箭头位置
            // ------   线 ---------
            lineStyle: {
              color: '#fff',
              width: 1,
              type: 'solid'
            }
          },
          axisLabel: { // 坐标轴标签
            show: true, // 是否显示
            inside: false, // 是否朝内
            rotate: 0, // 旋转角度
            margin: 5, // 刻度标签与轴线之间的距离
            color: '#fff' // 默认取轴线的颜色
          },
          data: ['00:00', '01:15', '02:30', '03:45', '05:00', '06:15', '07:30', '08:45', '10:00', '11:15', '12:30', '13:45', '15:00', '16:15', '17:30', '18:45', '20:00', '21:15', '22:30', '23:45']
        },
        // y轴配置
        yAxis: {
          type: 'value',
          axisPointer: {
            snap: true // 坐标轴指示器是否自动吸附到点上。默认自动判断。
          },
          axisLine: { // 坐标轴 轴线
            show: true, // 是否显示
            //  -----   箭头 -----
            symbol: ['none', 'arrow'], // 是否显示轴线箭头
            symbolSize: [8, 8], // 箭头大小
            symbolOffset: [0, 7], // 箭头位置
            // ----- 线 -------
            lineStyle: {
              color: '#fff',
              width: 1,
              type: 'solid'
            }
          },
          axisLabel: { // 坐标轴的标签
            formatter: '{value}',
            show: true, // 是否显示
            inside: false, // 是否朝内
            rotate: 0, // 旋转角度
            margin: 8, // 刻度标签与轴线之间的距离
            color: '#fff' // 默认轴线的颜色
          }
        },
        // 是视觉映射组件,分段折线
        visualMap: {
          show: false,
          dimension: 0, // 指定用数据的『哪个维度』,映射到视觉元素上。数组的第0项
          pieces: [{ // 分段配置可以使用 lt(小于,little than),gt(大于,greater than),
          // lte(小于等于 lettle than or equals),gte(大于等于,greater than or equals)来表达边界:
            lte: 6,
            color: '#1AFFFD'
          }, {
            gt: 6,
            lte: 8,
            color: 'orange'
          }, {
            gt: 8,
            lte: 14,
            color: '#1AFFFD'
          }, {
            gt: 14,
            lte: 17,
            color: 'orange'
          }, {
            gt: 17,
            color: '#1AFFFD'
          }]
        },
        // 系列列表。每个系列通过 type 决定自己的图表类型
        series: [
          {
            name: '用电量',
            type: 'line',
            smooth: true,
            data: [300, 280, 250, 260, 270, 300, 550, 500, 400, 390, 380, 390, 400, 500, 600, 750, 800, 700, 600, 400],
            // 图表标域,常用于标记图表中某个范围的数据
            markArea: {
              data: [[{
                name: '早高峰',
                xAxis: '07:30'
              }, {
                xAxis: '10:00'
              }], [{
                name: '晚高峰',
                xAxis: '17:30'
              }, {
                xAxis: '21:15'
              }]]
            }
          }
        ]
      }

 效果图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值