常用的echarts option配置

1.适用需求:两个指标,每个各占一半圆环各为100%

import {getEchartsNum} from 'common/utils/echartsUtils.js'

var data = 60

var data1 = 90

const zbrkPie = {

  // title: {

  //  text: '匹配度',

  //  x: 'center',

  //  y: 'center',

  //  textStyle: {

  //    fontWeight: 'normal',

  //    fontSize: 24,

  //    color: '#fff'

  //  }

  // },

  series: [

    {

      name: 'TDD',

      type: 'pie',

      clockWise: true,

      radius: ['52%', '64%'],

      center: ['50%', '40%'],

      minAngle: 0,

      startAngle: 270,

      itemStyle: {

        normal: {

          label: {

            show: false

          },

          labelLine: {

            show: false

          },

          shadowBlur: 40,

          shadowColor: 'rgba(0, 0, 0, 0)' // 边框阴影

        }

      },

      hoverAnimation: false,

      label: {

        borderRadius: '10'

      },

      data: [

        {

          value: data / 2,

          name: '诺西',

          itemStyle: {

            normal: {

              // borderWidth: getEchartsNum(10),

              // borderColor: 'rgba(0, 0, 0, 0)',

              borderRadius: '100',

              color: '#15b4d7'

            }

          }

        },

        {

          value: 100 - data / 2,

          name: '诺西占位写死',

          tooltip: {

            show: true

          },

          itemStyle: {

            normal: {

              borderWidth: getEchartsNum(6),

              borderColor: 'rgba(0, 0, 0, 0.8)',

              color: 'transparent',

              label: {

                show: false

              },

              labelLine: {

                show: false

              }

            },

            emphasis: {

              color: '#0fd5ff'

            }

          }

        }

      ],

      z: 9

    },

    {

      name: '华为',

      type: 'pie',

      clockWise: false,

      minAngle: 0,

      radius: ['52%', '64%'],

      center: ['50%', '40%'],

      itemStyle: {

        normal: {

          borderWidth: getEchartsNum(6),

          borderColor: 'rgba(0, 0, 0, 0.8)',

          label: {

            show: false

          },

          labelLine: {

            show: false

          }

        }

      },

      hoverAnimation: false,

      startAngle: 270,

      data: [{

        value: data1 / 2,

        name: '',

        tooltip: {

          show: false

        },

        itemStyle: {

          normal: {

            color: '#dd5b47'

          }

        }

      },

      {

        value: 100 - data1 / 2,

        name: '华为占位写死',

        itemStyle: {

          normal: {

            borderWidth: getEchartsNum(6),

            borderColor: 'rgba(0, 0, 0, 0.8)',

            color: 'transparent',

            label: {

              show: false

            },

            labelLine: {

              show: false

            }

          }

          // emphasis: {

          //  color: '#393d50'

          // }

        }

      }

      ],

      z: 9

    },

    {

      name: '背景图层',

      type: 'pie',

      clockWise: false,

      minAngle: 0,

      radius: ['52%', '64%'],

      center: ['50%', '40%'],

      itemStyle: {

        normal: {

          borderWidth: getEchartsNum(6),

          borderColor: 'rgba(0, 0, 0, 0.8)',

          label: {

            show: false

          },

          labelLine: {

            show: false

          },

          shadowBlur: 40,

          shadowColor: 'rgba(0, 0, 0, 0)' // 边框阴影

        }

      },

      hoverAnimation: false,

      startAngle: 270,

      data: [{

        value: 50,

        name: '',

        tooltip: {

          show: false

        },

        itemStyle: {

          normal: {

            color: 'rgba(68, 68, 68, 0.8)'

          }

        }

      },

      {

        value: 50,

        name: '背景图层',

        itemStyle: {

          normal: {

            color: 'rgba(68, 68, 68, 0.8)',

            label: {

              show: false

            },

            labelLine: {

              show: false

            }

          }

          // emphasis: {

          //  color: '#393d50'

          // }

        }

      }

      ]

    }

  ]

}

export {zbrkPie}


2.柱形图


import { getEchartsNum } from 'common/utils/echartsUtils.js'

const wlssfhddxtBar = {

  title: {

    top: '4%',

    text: '折线图',

    textStyle: {

      fontFamily: 'fontDigit',

      color: '#fff',

      fontSize: getEchartsNum(24)

    },

    fontStyle: {

      normal: {}

    }

  },

  // backgroundColor: '#191E40',

  tooltip: {

    trigger: 'axis',

    backgroundColor: 'rgba(255,255,255,0.1)',

    axisPointer: {

      type: 'shadow',

      label: {

        show: true,

        backgroundColor: '#7B7DDC'

      }

    }

  },

  legend: {

    data: ['值', '增量'],

    textStyle: {

      color: '#B4B4B4'

    },

    top: '7%'

  },

  grid: {

    left: '0',

    top: '20%',

    width: '100%',

    height: '60%',

    y: '12%'

  },

  xAxis: {

    data: ['上行CCE', '下行CCE', '上行PRB', '下行PRB', 'RRC'],

    axisLine: {

      show: false,

      lineStyle: {

        color: '#fff'

      }

    },

    axisLabel: {

      fontSize: getEchartsNum(24),

      padding: [getEchartsNum(10), 0, 0, 0]

    },

    axisTick: {

      show: false

    }

  },

  yAxis: [{

    splitLine: {show: false},

    axisLine: {

      show: false,

      lineStyle: {

        color: '#fff'

      }

    },

    axisLabel: {

      show: false

    }

  },

  {

    splitLine: {show: false},

    axisLine: {

      lineStyle: {

        color: '#B4B4B4'

      }

    },

    axisLabel: {

      formatter: '{value} ㎡'

    }

  }],

  series: [

    {

      name: '时段1',

      type: 'bar',

      barWidth: getEchartsNum(10),

      stack: '时段1',

      itemStyle: {

        normal: {

          color: '#04a8c4'

        }

      },

      data: [4200, 5000, 5500, 6500, 6400]

    },

    {

      name: '时段1增量',

      type: 'bar',

      barWidth: getEchartsNum(10),

      stack: '时段1',

      itemStyle: {

        normal: {

          color: ' #095865'

        }

      },

      data: [1200, 2000, 4500, 3500, 2400]

    },

    {

      name: '时段2',

      type: 'bar',

      barWidth: getEchartsNum(10),

      stack: '时段2',

      itemStyle: {

        normal: {

          color: '#fff600'

        }

      },

      data: [4100, 4000, 4500, 5500, 4400]

    },

    {

      name: '时段2增量',

      type: 'bar',

      stack: '时段2',

      barWidth: getEchartsNum(10),

      itemStyle: {

        normal: {

          color: '#6e7312'

        }

      },

      data: [4100, 4000, 4500, 5500, 4400]

    },

    {

      name: '时段3',

      type: 'bar',

      stack: '时段3',

      barWidth: getEchartsNum(10),

      itemStyle: {

        normal: {

          color: '#ff8a00'

        }

      },

      data: [4000, 3600, 4200, 5300, 4200]

    },

    {

      name: '时段3增量',

      type: 'bar',

      stack: '时段3',

      barWidth: getEchartsNum(10),

      itemStyle: {

        normal: {

          color: '#704914'

        }

      },

      data: [2000, 300, 1000, 3300, 4100]

    },

    {

      name: '时段4',

      type: 'bar',

      stack: '时段4',

      barWidth: getEchartsNum(10),

      itemStyle: {

        normal: {

          color: '#cc3323'

        }

      },

      data: [2300, 2000, 4200, 5200, 2400]

    },

    {

      name: '时段4增量',

      type: 'bar',

      barWidth: getEchartsNum(10),

      stack: '时段4',

      itemStyle: {

        normal: {

          color: '#5b2722'

        }

      },

      data: [2300, 2000, 4200, 5200, 2400]

    }

  ]

}

export {wlssfhddxtBar}


进度图


import { getEchartsNum } from 'common/utils/echartsUtils.js'

var myColor = ['#0fd5ff', '#4cd964', '#9a87ff', '#d9564c', '#f39436']

const txwlBar1 = {

  title: [

    {

      text: '建设进度',

      left: 'left',

      x: '40%',

      y: '0',

      textStyle: {

        fontFamily: 'fontDigit',

        color: '#fff',

        fontSize: getEchartsNum(40)

      }

    }

  ],

  grid: [

    {

      x: '2%',

      y: '16%',

      width: '86%',

      height: '80%'}

  ],

  // tooltip: {

  //  formatter: '{b} ({c})'

  // },

  xAxis: [

    {

      gridIndex: 0,

      axisTick: {show: false},

      axisLabel: {show: false},

      splitLine: {show: false},

      axisLine: {show: false}

    }

  ],

  yAxis: [

    {

      gridIndex: 0,

      interval: 0,

      inverse: true,

      data: ['基站征址困难', '基站征址困难&光缆建设受阻', '基站建设受阻', '基站建设受阻&光缆建设受阻', '光缆建设受阻'].reverse(),

      axisTick: {show: false},

      splitLine: {show: false},

      axisLine: {show: false},

      axisLabel: {

        color: '#fff',

        align: 'left',

        padding: [0, 0, getEchartsNum(64), 0],

        textStyle: {

          fontSize: getEchartsNum(24),

          color: '#fff'

        }

      }

    }

  ],

  series: [

    {

      name: '建设进度',

      type: 'bar',

      xAxisIndex: 0,

      yAxisIndex: 0,

      barWidth: '22%',

      itemStyle: {

        normal: {

          shadowBlur: 30,

          shadowColor: 'rgba(255,255,255,0.2)', // 设置图形阴影

          shadowOffsetX: -5,

          shadowOffsetY: 5,

          color: function (params) {

            var num = myColor.length

            return myColor[params.dataIndex % num]

          }

        }

      },

      label: {

        normal: {

          show: true,

          position: 'right',

          textStyle: {

            color: function (value, index) {

              return index <= 0 ? '#2c95d2' : index <= 1 ? '#4cd964' : '#9a87ff'

            },

            padding: [0, 0, 0, getEchartsNum(5)],

            fontSize: getEchartsNum(24)

          }

        }},

      data: [389, 259, 262, 324, 132].sort()

    }

  ]

}

export {txwlBar1}

3.气泡图


import { getEchartsNum } from 'common/utils/echartsUtils.js'

const wlxtAir = {

  title: {

    top: '0',

    text: '栅格级感知速率',

    textStyle: {

      fontFamily: 'Helvetica Neue',

      color: '#fff',

      fontSize: getEchartsNum(36)

    },

    fontStyle: {

      normal: {}

    }

  },

  grid: {

    left: '4%',

    right: '3%',

    bottom: '10%',

    width: '96%',

    height: '78%'

  },

  yAxis: {

    type: 'category',

    data: ['差', '良', '优'],

    axisLabel: {

      show: true,

      color: '#fff',

      fontSize: getEchartsNum(20)

    },

    axisLine: { // y轴

      show: false

    },

    axisTick: {

      show: false

    }

    /* splitLine: {

            lineStyle: {

                type: 'dashed'

            }

        } */

  },

  xAxis: {

    type: 'category',

    data: ['海口', '三亚', '乐东', '陵水', '儋州', '万宁', '五指山', '临高', '琼中', '东方', '琼海', '澄迈', '白沙', '保亭'],

    axisLabel: {

      show: true,

      rotate: 30,

      color: '#fff',

      fontSize: getEchartsNum(16)

    },

    axisTick: {

      show: false

    },

    axisLine: {

      show: false

    }

  },

  series: [{

    type: 'scatter',

    name: '1990',

    symbol: 'circle', // 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'

    symbolSize: function (data) {

      return (Math.sqrt(data[2])) / 7

    },

    itemStyle: {

      normal: {

        color: (params) => {

          let color = ''

          if (params.data[1] === '优') {

            color = '#21e12e'

          } else if (params.data[1] === '良') {

            color = '#ffff00'

          } else {

            color = '#d7422c'

          }

          // build a color map as your need.

          // let colorList = [

          //  '#DF6A85',

          //  '#716AA9',

          //  '#34BCC3',

          //  '#FC6D44',

          //  '#0B9FCA',

          //  '#73C234'

          // ]

          // return colorList[params.dataIndex]

          return color

        }

      }

    },

    label: {

      emphasis: {

        show: true,

        formatter: function (param) {

          return param.data[2]

        },

        position: 'top',

        fontSize: getEchartsNum(24)

      }

    },

    data: [

      ['海口', '优', 50],

      ['三亚', '优', 50],

      ['乐东', '优', 100],

      ['陵水', '优', 50],

      ['乐东', '优', 40],

      ['儋州', '优', 40],

      ['万宁', '优', 60],

      ['五指山', '优', 100],

      ['临高', '优', 40],

      ['琼中', '优', 40],

      ['东方', '优', 40],

      ['琼海', '优', 40],

      ['澄迈', '优', 40],

      ['白沙', '优', 40],

      ['保亭', '优', 40],

      ['海口', '良', 50],

      ['三亚', '良', 60],

      ['陵水', '良', 80],

      ['乐东', '良', 210],

      ['儋州', '良', 100],

      ['万宁', '良', 210],

      ['五指山', '良', 100],

      ['临高', '良', 10],

      ['琼中', '良', 110],

      ['东方', '良', 110],

      ['琼海', '良', 110],

      ['澄迈', '良', 110],

      ['白沙', '良', 110],

      ['保亭', '良', 110],

      ['五指山', '差', 100],

      ['临高', '差', 100],

      ['琼中', '差', 100],

      ['儋州', '差', 40],

      ['万宁', '差', 100],

      ['乐东', '差', 10],

      ['陵水', '差', 100],

      ['三亚', '差', 100],

      ['海口', '差', 100],

      ['东方', '差', 100],

      ['琼海', '差', 100],

      ['澄迈', '差', 100],

      ['白沙', '差', 100],

      ['保亭', '差', 100]

    ]

  }]

}

export {wlxtAir}


接口取数:

// 栅格级感知速率 各地市数据

    async getNetSynergyCitysList () {

      let info = await api.getNetSynergyCitysList()

      if (info.status !== 200) { // 接口请求出错

        return

      }

      let data = info.data

      var dataList = []

      let cityList = []

      var count = 0

      for (var item of data) {

        if (!cityList.includes(item.city_name)) {

          cityList.push(item.city_name)

        }

        let temp = []

        temp.push(item.city_name)

        if (item.index_flag === '1') {

          temp.push('差')

        } else if (item.index_flag === '2') {

          temp.push('良')

        } else {

          temp.push('优')

        }

        temp.push(item.index_value)

        dataList[count++] = temp

      }

      wlxtAir.series[0].data = dataList

      wlxtAir.xAxis.data = cityList

      this.chartAir.setOption(wlxtAir, true)

    },

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