• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

常用echarts展示

武飞扬头像
逆风优雅
帮助1

案例一:(双坐标,双柱图)

学新通

 代码及注释:

  1.  
    this.chartOption = {
  2.  
    legend: {
  3.  
    itemHeight: 6, // 图例的高度
  4.  
    itemWidth: 16, // 图例的宽度
  5.  
    x: "center", //居右显示
  6.  
    inactiveColor: "rgba(0,0,0,0.3)", // 图例关闭后的颜色
  7.  
    textStyle: {
  8.  
    fontSize: 12,
  9.  
    color: "#0B9295", // 图例的文字颜色
  10.  
    padding: [3, 0, 0, 0],
  11.  
    },
  12.  
    data: ["老人数", "预警数"],
  13.  
    },
  14.  
    tooltip: {
  15.  
    trigger: "axis",
  16.  
    axisPointer: {
  17.  
    type: "shadow"
  18.  
    }
  19.  
    },
  20.  
    grid: {
  21.  
    left: "0%",
  22.  
    right: "0%",
  23.  
    bottom: "3%",
  24.  
    containLabel: true
  25.  
    },
  26.  
    xAxis: {
  27.  
    type: "category",
  28.  
    // data: yearList,
  29.  
    data:[
  30.  
    "市区", "高邮市", "仪征市", "江都区", "宝应县"
  31.  
    ],
  32.  
    splitLine: {//分割线配置
  33.  
    show: false
  34.  
    },
  35.  
    axisLabel: { // x轴线文字的样式
  36.  
    textStyle: {
  37.  
    color: "#B4FFF5",
  38.  
    fontSize: 12
  39.  
    },
  40.  
    },
  41.  
    axisTick: {
  42.  
    show: false
  43.  
    },
  44.  
    axisLine: {//x轴线的颜色以及宽度
  45.  
    show: true,
  46.  
    lineStyle: {
  47.  
    color: "#3AB2B4",
  48.  
    type: "solid",
  49.  
    width: 1
  50.  
    }
  51.  
    }
  52.  
    },
  53.  
    yAxis: [
  54.  
    {
  55.  
    type: "value",
  56.  
    name:"老人数",
  57.  
    nameTextStyle:{ // name的样式
  58.  
    color:"#0B9295"
  59.  
    },
  60.  
    splitLine: {//分割线配置
  61.  
    show: false,
  62.  
    lineStyle: {
  63.  
    color: "#3AB2B4",
  64.  
    type: "solid",
  65.  
    width: 0
  66.  
    }
  67.  
    },
  68.  
    axisTick: { // 取消刻度线上的小刻度
  69.  
    show: false
  70.  
    },
  71.  
    axisLine:{ // 取消整个刻度线
  72.  
    show:false
  73.  
    },
  74.  
    axisLabel: { // y轴的文字样式
  75.  
    textStyle: {
  76.  
    color: "#B4FFF5"
  77.  
    },
  78.  
    }
  79.  
     
  80.  
    },
  81.  
    {
  82.  
    type: "value",
  83.  
    name:"预警数",
  84.  
    nameTextStyle:{
  85.  
    color:"#0B9295"
  86.  
    },
  87.  
    position:"right",
  88.  
    splitLine: {//分割线配置
  89.  
    show: false,
  90.  
    lineStyle: {
  91.  
    color: "rgba(0, 112, 107, 0.1)"
  92.  
    }
  93.  
    },
  94.  
    axisTick: { // 取消刻度线上的小刻度
  95.  
    show: false
  96.  
    },
  97.  
    axisLine:{ // 取消整个刻度线
  98.  
    show:false
  99.  
    },
  100.  
    axisLabel: {
  101.  
    show:true,
  102.  
    textStyle: {
  103.  
    color: "#B4FFF5"
  104.  
    },
  105.  
    }
  106.  
    },
  107.  
    {
  108.  
    type: "value",
  109.  
    gridIndex: 0,
  110.  
    min: 50,
  111.  
    max: 100,
  112.  
    splitNumber: 8,
  113.  
    splitLine: {
  114.  
    show: false,
  115.  
    color: ["#ccc"], // 分隔线颜色。
  116.  
    width: 1, // 分隔线线宽
  117.  
    type: "dashed", // 线的类型
  118.  
    opacity: 1 // 图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。
  119.  
    },
  120.  
    axisLine: {
  121.  
    show: false
  122.  
    },
  123.  
    axisTick: {
  124.  
    show: false
  125.  
    },
  126.  
    axisLabel: {
  127.  
    show: false
  128.  
    },
  129.  
    splitArea: {
  130.  
    show: true,
  131.  
    areaStyle: {
  132.  
    color: ["rgba(250,250,250,0.0)", "rgba(250,250,250,0.05)"]
  133.  
    }
  134.  
    }
  135.  
    }
  136.  
     
  137.  
    ],
  138.  
    series: [
  139.  
    {
  140.  
    name: "老人数",
  141.  
    type: "bar",
  142.  
    color: "#4FE2CF",
  143.  
    nameStyle:{
  144.  
    width:100
  145.  
    },
  146.  
    yAxisIndex: 0, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  147.  
    barWidth:"14px", // 柱子的宽度
  148.  
    itemStyle: {
  149.  
    normal: {
  150.  
     
  151.  
    barBorderRadius: [2, 2, 2, 2],
  152.  
    lineStyle: {
  153.  
    width: 3
  154.  
    }
  155.  
    }
  156.  
    },
  157.  
    data:[
  158.  
    "12",
  159.  
    "2",
  160.  
    "3",
  161.  
    "2",
  162.  
    "45",
  163.  
    ]
  164.  
    },
  165.  
    {
  166.  
    name: "预警数",
  167.  
    type: "bar",
  168.  
    color: "#FF9F48",
  169.  
    barWidth:"14px", // 柱子的宽度
  170.  
    yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  171.  
    showAllSymbol: true, //显示所有图形。
  172.  
    itemStyle: {
  173.  
    normal: {
  174.  
     
  175.  
    barBorderRadius: [2, 2, 2, 2],
  176.  
    lineStyle: {
  177.  
    width: 3
  178.  
    }
  179.  
    }
  180.  
    },
  181.  
    data:[
  182.  
    "123",
  183.  
    "34",
  184.  
    "56",
  185.  
    "23",
  186.  
    "566",
  187.  
    ]
  188.  
    },
  189.  
     
  190.  
     
  191.  
    ]
  192.  
    };

案例二:(堆叠柱图 折线图

学新通

 代码及注释:

  1.  
    this.chartOption = {
  2.  
    legend: {
  3.  
    itemHeight: 6,
  4.  
    itemWidth: 16,
  5.  
    x: "center", //居右显示
  6.  
    inactiveColor: "rgba(0,0,0,0.3)",// 图例关闭后的颜色
  7.  
    textStyle: {
  8.  
    fontSize: 12,
  9.  
    color: "#0B9295", // 图例的文字颜色
  10.  
    padding: [3, 0, 0, 0],
  11.  
    },
  12.  
    data: ["处理数", "预警数", "处理率"],
  13.  
    },
  14.  
    tooltip: {
  15.  
    trigger: "axis",
  16.  
    axisPointer: { // 鼠标移上去时,触发后的样式
  17.  
    type: "shadow"
  18.  
    }
  19.  
    },
  20.  
    grid: {
  21.  
    left: "3.5%",
  22.  
    right: "0%",
  23.  
    bottom: "3%",
  24.  
    containLabel: true
  25.  
    },
  26.  
    xAxis: {
  27.  
    type: "category",
  28.  
    // data: yearList,
  29.  
    data:[
  30.  
    "市区", "高邮市", "仪征市", "江都区", "宝应县"
  31.  
    ],
  32.  
    splitLine: {//分割线配置
  33.  
    show: false
  34.  
    },
  35.  
    axisLabel: { // x轴线文字的样式
  36.  
    textStyle: {
  37.  
    color: "#B4FFF5",
  38.  
    fontSize: 12
  39.  
    },
  40.  
    },
  41.  
    axisTick: {
  42.  
    show: false
  43.  
    },
  44.  
    axisLine: {//x轴线的颜色以及宽度
  45.  
    show: true,
  46.  
    lineStyle: {
  47.  
    color: "#3AB2B4",
  48.  
    type: "solid",
  49.  
    width: 1
  50.  
    }
  51.  
    }
  52.  
    },
  53.  
    yAxis: [
  54.  
    {
  55.  
    type: "value",
  56.  
    name:"预警数/处理数",
  57.  
    nameTextStyle:{ // name的样式
  58.  
    color:"#0B9295"
  59.  
    },
  60.  
    splitLine: {//分割线配置
  61.  
    show: false,
  62.  
    lineStyle: {
  63.  
    color: "#3AB2B4",
  64.  
    type: "solid",
  65.  
    width: 0
  66.  
    }
  67.  
    },
  68.  
    axisTick: { // 取消刻度线上的小刻度
  69.  
    show: false
  70.  
    },
  71.  
    axisLine:{ // 取消整个刻度线
  72.  
    show:false
  73.  
    },
  74.  
    axisLabel: { // y轴的文字样式
  75.  
    textStyle: {
  76.  
    color: "#B4FFF5"
  77.  
    },
  78.  
    }
  79.  
    },
  80.  
    {
  81.  
    type: "value",
  82.  
    name:"处理率",
  83.  
    nameTextStyle:{
  84.  
    color:"#0B9295"
  85.  
    },
  86.  
    position:"right",
  87.  
    splitLine: {//分割线配置
  88.  
    show: false,
  89.  
    lineStyle: {
  90.  
    color: "rgba(0, 112, 107, 0.1)"
  91.  
    }
  92.  
    },
  93.  
    axisTick: { // 取消刻度线上的小刻度
  94.  
    show: false
  95.  
    },
  96.  
    axisLine:{ // 取消整个刻度线
  97.  
    show:false
  98.  
    },
  99.  
    axisLabel: {
  100.  
    show:true,
  101.  
    textStyle: {
  102.  
    color: "#B4FFF5"
  103.  
    },
  104.  
    }
  105.  
    },
  106.  
    {
  107.  
    type: "value",
  108.  
    gridIndex: 0,
  109.  
    min: 50,
  110.  
    max: 100,
  111.  
    splitNumber: 8,
  112.  
    splitLine: {
  113.  
    show: false
  114.  
    },
  115.  
    axisLine: {
  116.  
    show: false
  117.  
    },
  118.  
    axisTick: {
  119.  
    show: false
  120.  
    },
  121.  
    axisLabel: {
  122.  
    show: false
  123.  
    },
  124.  
    splitArea: {
  125.  
    show: true,
  126.  
    areaStyle: {
  127.  
    color: ["rgba(250,250,250,0.0)", "rgba(250,250,250,0.05)"]
  128.  
    }
  129.  
    }
  130.  
    }
  131.  
     
  132.  
    ],
  133.  
    series: [
  134.  
    {
  135.  
    name: "处理数",
  136.  
    type: "bar",
  137.  
    color: "#4FE2CF",
  138.  
    // stack设置柱状图堆叠,stack后面要跟同样的名字
  139.  
    stack:"Search Engine",
  140.  
    nameStyle:{
  141.  
    width:100
  142.  
    },
  143.  
    yAxisIndex: 0, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  144.  
    barWidth:"14px", // 柱子的宽度
  145.  
    itemStyle: {
  146.  
    normal: {
  147.  
     
  148.  
    lineStyle: {
  149.  
    width: 3
  150.  
    }
  151.  
    }
  152.  
    },
  153.  
    data:[
  154.  
    "12",
  155.  
    "2",
  156.  
    "3",
  157.  
    "2",
  158.  
    "45",
  159.  
    ]
  160.  
    },
  161.  
    // yAxisIndex: 0, 因为处理数和预警数在一起 所以将这两个的值设置为同一个,这样 处理数和预警数会同时使用左侧的 y轴的坐标
  162.  
    {
  163.  
    name: "预警数",
  164.  
    type: "bar",
  165.  
    // stack设置柱状图堆叠,stack后面要跟同样的名字
  166.  
    stack:"Search Engine",
  167.  
    color: "#FF9F48",
  168.  
    barWidth:"14px", // 柱子的宽度
  169.  
    yAxisIndex: 0, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  170.  
    showAllSymbol: true, //显示所有图形。
  171.  
    itemStyle: {
  172.  
    normal: {
  173.  
     
  174.  
    barBorderRadius: [2, 2, 2, 2],
  175.  
    lineStyle: {
  176.  
    width: 3
  177.  
    }
  178.  
    }
  179.  
    },
  180.  
    data:[
  181.  
    "123",
  182.  
    "34",
  183.  
    "56",
  184.  
    "23",
  185.  
    "566",
  186.  
    ]
  187.  
    },
  188.  
    {
  189.  
    name: "处理率",
  190.  
    type: "line",
  191.  
    color: "#ff4d1c",
  192.  
    barWidth:"14px", // 柱子的宽度
  193.  
    yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  194.  
    showAllSymbol: true, //显示所有图形。
  195.  
    smooth: true, //平滑曲线显示
  196.  
    symbol:"circle",
  197.  
    symbolSize: 9, //标记的大小
  198.  
    itemStyle: {
  199.  
    normal: {
  200.  
    lineStyle: {
  201.  
    width: 1
  202.  
    }
  203.  
    }
  204.  
    },
  205.  
    data:[
  206.  
    "123",
  207.  
    "34",
  208.  
    "56",
  209.  
    "23",
  210.  
    "566",
  211.  
    ]
  212.  
    },
  213.  
     
  214.  
    ]
  215.  
    };

案例三:

学新通

代码及注释:

  1.  
    this.chartOption = {
  2.  
    legend: {
  3.  
    itemHeight: 6, // 图例的高度
  4.  
    itemWidth: 16, // 图例的宽度
  5.  
    x: "center", //居右显示
  6.  
    inactiveColor: "rgba(0,0,0,0.3)",// 图例关闭后的颜色
  7.  
    textStyle: {
  8.  
    fontSize: 12,
  9.  
    color: "#0B9295", // 图例的文字颜色
  10.  
    padding: [3, 0, 0, 0],
  11.  
    },
  12.  
    data: ["实时用电量", "近七天平均用电量"],
  13.  
    },
  14.  
    tooltip: {
  15.  
    trigger: "axis",
  16.  
     
  17.  
    },
  18.  
    grid: {
  19.  
    left: "0%",
  20.  
    right: "0%",
  21.  
    bottom: "3%",
  22.  
    containLabel: true
  23.  
    },
  24.  
    xAxis: {
  25.  
    type: "category",
  26.  
    // data: yearList,
  27.  
    data:[
  28.  
    "11:00", "11:20", "11:40", "12:00", "12:20", "12:40", "13:00"
  29.  
    ],
  30.  
    splitLine: {//分割线配置
  31.  
    show: false
  32.  
    },
  33.  
    axisLabel: { // x轴线文字的样式
  34.  
    textStyle: {
  35.  
    color: "#B4FFF5",
  36.  
    fontSize: 12
  37.  
    },
  38.  
    },
  39.  
    axisTick: {
  40.  
    show: false
  41.  
    },
  42.  
    axisLine: {//x轴线的颜色以及宽度
  43.  
    show: true,
  44.  
    lineStyle: {
  45.  
    color: "#3AB2B4",
  46.  
    type: "solid",
  47.  
    width: 1
  48.  
    }
  49.  
    }
  50.  
    },
  51.  
    yAxis: [
  52.  
    {
  53.  
    type: "value",
  54.  
    name:"单位:kwh",
  55.  
    splitNumber: 5,
  56.  
    nameTextStyle:{ // name的样式
  57.  
    color:"#0B9295"
  58.  
    },
  59.  
     
  60.  
    axisTick: { // 取消刻度线上的小刻度
  61.  
    show: false
  62.  
    },
  63.  
    axisLine:{ // 取消整个刻度线
  64.  
    show:false
  65.  
    },
  66.  
     
  67.  
    splitLine: {
  68.  
    lineStyle: {
  69.  
    color: "#3AB2B4",
  70.  
    opacity: 0.3,
  71.  
    type: "solid",
  72.  
    },
  73.  
    },
  74.  
    axisLabel: {
  75.  
    textStyle: {
  76.  
    color: "#B4FFF5",
  77.  
    },
  78.  
    },
  79.  
    },
  80.  
     
  81.  
    ],
  82.  
    series: [
  83.  
    {
  84.  
    type: "line",
  85.  
    symbol: "none", // 不展示折线的圆点
  86.  
    name:"近七天平均用电量",
  87.  
    smooth: true, // 平滑的折线
  88.  
    itemStyle: {
  89.  
    normal: {
  90.  
    color: "#ff9f48", //改变折线点的颜色
  91.  
    lineStyle: {
  92.  
    color: "#ff9f48", //改变折线颜色
  93.  
    type: "solid"
  94.  
    }
  95.  
    }
  96.  
    },
  97.  
    areaStyle: {
  98.  
    //折线图颜色半透明
  99.  
    color: {
  100.  
    type: "linear",
  101.  
    x: 0,
  102.  
    y: 0,
  103.  
    x2: 0,
  104.  
    y2: 1,
  105.  
    colorStops: [{
  106.  
    offset: 0, color: "rgba(255, 159, 72, 0.5)" // 0% 处的颜色
  107.  
    }, {
  108.  
    offset: 1, color: "rgba(255, 159, 72, 0)" // 100% 处的颜色
  109.  
    }],
  110.  
    global: false // 缺省为 false
  111.  
    }
  112.  
    },
  113.  
    toolbox: {
  114.  
    show: false,
  115.  
    },
  116.  
    data: [480, 390, 500, 260, 320, 660, 320],
  117.  
    },
  118.  
    {
  119.  
    type: "line",
  120.  
    symbol: "none", // 不展示折线的圆点
  121.  
    name:"实时用电量",
  122.  
    smooth: true, // 平滑的折线
  123.  
    itemStyle: {
  124.  
    normal: {
  125.  
    color: "#4fe2cf", //改变折线点的颜色
  126.  
    lineStyle: {
  127.  
    color: "#4fe2cf", //改变折线颜色
  128.  
    type: "solid"
  129.  
    }
  130.  
    }
  131.  
    },
  132.  
    areaStyle: { // 折线下的区域颜色
  133.  
    //折线图颜色半透明
  134.  
    color: {
  135.  
    type: "linear",
  136.  
    x: 0,
  137.  
    y: 0,
  138.  
    x2: 0,
  139.  
    y2: 1,
  140.  
    colorStops: [{
  141.  
    offset: 0, color: "rgba(79, 226, 207, 0.5)" // 0% 处的颜色
  142.  
    }, {
  143.  
    offset: 1, color: "rgba(79, 226, 207,0)" // 100% 处的颜色
  144.  
    }],
  145.  
    global: false // 缺省为 false
  146.  
    }
  147.  
    },
  148.  
    toolbox: {
  149.  
    show: false,
  150.  
    },
  151.  
    data: [340, 510, 540, 600, 500, 600, 640],
  152.  
    },
  153.  
     
  154.  
     
  155.  
    ],
  156.  
    };

案例四:(动态前进图)

学新通

  1.  
    import Util from "@/util/echarts/common"; // 引入echarts公共的类\
  2.  
     
  3.  
    export default class Bar extends Util {
  4.  
    constructor(el, option) {
  5.  
    super(el, option); // 继承父类,echarts公共类的值
  6.  
    this.init(); // 初始化
  7.  
    }
  8.  
     
  9.  
    init() {
  10.  
    this.myChart = this.$e.init(this.$el);
  11.  
    this.setCharts();
  12.  
    var index = 0; //播放所在下标
  13.  
     
  14.  
    setTimeout(()=>{
  15.  
    this.myChart.dispatchAction({
  16.  
    type: "showTip",
  17.  
    seriesIndex:0,
  18.  
    dataIndex: index //默认显示第几个
  19.  
    });
  20.  
    index ;
  21.  
    if(index > 96) { // 此处的96为x轴的数据长度
  22.  
    index = 0;
  23.  
    }
  24.  
    });
  25.  
    // 改变this指向
  26.  
    var option = this.chartOption;
  27.  
    var myChart = this.myChart;
  28.  
     
  29.  
    setInterval(function () {
  30.  
    // 每次向后滚动一个,最后一个从头开始。
  31.  
    if (option.dataZoom[0].endValue === 96 ) { // 此处的96为x轴的数据长度
  32.  
    option.dataZoom[0].endValue = 15;
  33.  
    option.dataZoom[0].startValue = 0;
  34.  
    }
  35.  
    else {
  36.  
    option.dataZoom[0].endValue = option.dataZoom[0].endValue 1;
  37.  
    option.dataZoom[0].startValue = option.dataZoom[0].startValue 1;
  38.  
    }
  39.  
    myChart.setOption(option, true); // 将配置项加到echarts中
  40.  
    }, 2000);
  41.  
    window.addEventListener("resize", () => { // 监听屏幕缩放,使echarts同样缩放
  42.  
    this.myChart.resize();
  43.  
    });
  44.  
    }
  45.  
     
  46.  
    setCharts() { // 配置echarts
  47.  
    this.chartOption = {
  48.  
    legend: {
  49.  
    itemHeight: 6, // 图例的高度
  50.  
    itemWidth: 16, // 图例的宽度
  51.  
    x: "center", //居右显示
  52.  
    inactiveColor: "rgba(0,0,0,0.3)",
  53.  
    textStyle: {
  54.  
    fontSize: 12,
  55.  
    color: "#0B9295", // 图例的文字颜色
  56.  
    padding: [3, 0, 0, 0],
  57.  
    },
  58.  
    data: ["实时用电量", "近七天平均用电量"],
  59.  
    left:'right',
  60.  
    },
  61.  
    tooltip: {
  62.  
    trigger: "axis",
  63.  
     
  64.  
    },
  65.  
    dataZoom: [
  66.  
    {
  67.  
    show:false, // 隐藏下拉条
  68.  
    startValue: 0, // 从头开始。
  69.  
    endValue: 9 // 一次性展示9个。
  70.  
    }
  71.  
    ],
  72.  
    grid: {
  73.  
    left: "3%",
  74.  
    right: "0%",
  75.  
    bottom: "3%",
  76.  
    containLabel: true
  77.  
    },
  78.  
    xAxis: {
  79.  
    type: "category",
  80.  
    // data: yearList,
  81.  
    data:[
  82.  
    "11:00", "11:20", "11:40", "12:00", "12:20", "12:40", "13:00","11:00", "11:20", "11:40", "12:00", "12:20", "12:40", "13:00"
  83.  
    ],
  84.  
    splitLine: {//分割线配置
  85.  
    show: false
  86.  
    },
  87.  
    axisLabel: { // x轴线文字的样式
  88.  
    textStyle: {
  89.  
    color: "#B4FFF5",
  90.  
    fontSize: 12
  91.  
    },
  92.  
    },
  93.  
    axisTick: {
  94.  
    show: false
  95.  
    },
  96.  
    axisLine: {//x轴线的颜色以及宽度
  97.  
    show: true,
  98.  
    lineStyle: {
  99.  
    color: "#3AB2B4",
  100.  
    type: "solid",
  101.  
    width: 1
  102.  
    }
  103.  
    }
  104.  
    },
  105.  
    yAxis: [
  106.  
    {
  107.  
    type: "value",
  108.  
    name:"单位:kwh",
  109.  
    splitNumber: 5,
  110.  
    nameTextStyle:{ // name的样式
  111.  
    color:"#0B9295"
  112.  
    },
  113.  
     
  114.  
    axisTick: { // 取消刻度线上的小刻度
  115.  
    show: false
  116.  
    },
  117.  
    axisLine:{ // 取消整个刻度线
  118.  
    show:false
  119.  
    },
  120.  
     
  121.  
    splitLine: {
  122.  
    lineStyle: {
  123.  
    color: "#3AB2B4",
  124.  
    opacity: 0.3,
  125.  
    type: "solid",
  126.  
    },
  127.  
    },
  128.  
    axisLabel: {
  129.  
    textStyle: {
  130.  
    color: "#B4FFF5",
  131.  
    },
  132.  
    },
  133.  
    },
  134.  
     
  135.  
    ],
  136.  
    series: [
  137.  
    {
  138.  
    type: "line",
  139.  
    symbol: "none", // 不展示折线的圆点
  140.  
    name:"近七天平均用电量",
  141.  
    smooth: true, // 平滑的折线
  142.  
    itemStyle: {
  143.  
    normal: {
  144.  
    color: "#ff9f48", //改变折线点的颜色
  145.  
    lineStyle: {
  146.  
    color: "#ff9f48", //改变折线颜色
  147.  
    type: "solid"
  148.  
    }
  149.  
    }
  150.  
    },
  151.  
    areaStyle: {
  152.  
    //折线图颜色半透明
  153.  
    color: {
  154.  
    type: "linear",
  155.  
    x: 0,
  156.  
    y: 0,
  157.  
    x2: 0,
  158.  
    y2: 1,
  159.  
    colorStops: [{
  160.  
    offset: 0, color: "rgba(255, 159, 72, 0.5)" // 0% 处的颜色
  161.  
    }, {
  162.  
    offset: 1, color: "rgba(255, 159, 72, 0)" // 100% 处的颜色
  163.  
    }],
  164.  
    global: false // 缺省为 false
  165.  
    }
  166.  
    },
  167.  
    toolbox: {
  168.  
    show: false,
  169.  
    },
  170.  
    data: [340, 51, 540, 600, 500, 60, 60,30, 50, 50, 60, 50, 60, 60],
  171.  
    },
  172.  
    {
  173.  
    type: "line",
  174.  
    symbol: "none", // 不展示折线的圆点
  175.  
    name:"实时用电量",
  176.  
    smooth: true, // 平滑的折线
  177.  
    itemStyle: {
  178.  
    normal: {
  179.  
    color: "#4fe2cf", //改变折线点的颜色
  180.  
    lineStyle: {
  181.  
    color: "#4fe2cf", //改变折线颜色
  182.  
    type: "solid"
  183.  
    }
  184.  
    }
  185.  
    },
  186.  
    areaStyle: { // 折线下的区域颜色
  187.  
    //折线图颜色半透明
  188.  
    color: {
  189.  
    type: "linear",
  190.  
    x: 0,
  191.  
    y: 0,
  192.  
    x2: 0,
  193.  
    y2: 1,
  194.  
    colorStops: [{
  195.  
    offset: 0, color: "rgba(79, 226, 207, 0.5)" // 0% 处的颜色
  196.  
    }, {
  197.  
    offset: 1, color: "rgba(79, 226, 207,0)" // 100% 处的颜色
  198.  
    }],
  199.  
    global: false // 缺省为 false
  200.  
    }
  201.  
    },
  202.  
    toolbox: {
  203.  
    show: false,
  204.  
    },
  205.  
    data: [340, 510, 540, 600, 500, 600, 640,340, 510, 540, 600, 500, 600, 640],
  206.  
    },
  207.  
     
  208.  
     
  209.  
    ],
  210.  
    };
  211.  
    }
  212.  
    }
案例五:雷达图
学新通

代码:

学新通

  1.  
    mounted(){
  2.  
    // 渲染echarts
  3.  
    // 监听屏幕,实现自适应
  4.  
    window.onresize = () => {
  5.  
    this.myChart.resize();
  6.  
    };
  7.  
    setTimeout(()=>{
  8.  
    this.initChart()
  9.  
    },1000)
  10.  
    },
  11.  
    methods:{
  12.  
    initChart(){
  13.  
    this.myChart = echarts.init(document.getElementById('chart'))
  14.  
    const option = {
  15.  
    color: ["#1b7cff", "#6dcd62"],
  16.  
    title: {
  17.  
    text: '企业能力分析',
  18.  
    textStyle:{
  19.  
    color: '#2E3A55',
  20.  
    fontWeight: 500,
  21.  
    fontSize: '15px',
  22.  
    }
  23.  
    },
  24.  
    tooltip:{
  25.  
    show: true,
  26.  
    // trigger: 'item',
  27.  
    // confine: true,
  28.  
    // textStyle: {
  29.  
    // color: "#fff",
  30.  
    // fontSize: 13
  31.  
    // }
  32.  
    },
  33.  
    legend: {
  34.  
    itemHeight: 8,
  35.  
    itemWidth: 8,
  36.  
    data: ['企业得分占比', '市均值得分占比'],
  37.  
    x: "right",
  38.  
    textStyle: {
  39.  
    fontSize: 10,
  40.  
    color: "#B2BACC", // 图例的文字颜色
  41.  
    }
  42.  
    },
  43.  
    radar: {
  44.  
    // shape: 'circle',
  45.  
    center: ['50%', '59%'],//位置
  46.  
    name: {
  47.  
    textStyle: {
  48.  
    color: '#6A7284',
  49.  
    fontSize:'12px'
  50.  
    }
  51.  
    },
  52.  
    indicator: [
  53.  
    { name: '创新人才', max: 6500 },
  54.  
    { name: '创新投入', max: 16000 },
  55.  
    { name: '创新产出', max: 30000 },
  56.  
    { name: '企业成长性', max: 38000 },
  57.  
    { name: '创新平台', max: 52000 },
  58.  
    { name: '创新活动', max: 25000 },
  59.  
    { name: '创新成果', max: 25000 }
  60.  
    ]
  61.  
    },
  62.  
    series: [
  63.  
    {
  64.  
    type: 'radar',
  65.  
    // label:{
  66.  
    // show: true,
  67.  
    // position: 'top',
  68.  
    // color: 'rgba(111,82,38, .8)',
  69.  
    // fontSize: 13,
  70.  
    // fontWeight: 'bold'
  71.  
    // },
  72.  
    symbolSize: 6 , // 雷达区域节点的大小
  73.  
    // // 区域的颜色
  74.  
    // itemStyle: {
  75.  
    // borderWidth: 2,
  76.  
    // opacity: 1
  77.  
    // },
  78.  
    // 雷达区域的背景颜色的样式
  79.  
    areaStyle: {
  80.  
    opacity: 0.2
  81.  
    },
  82.  
    data: [
  83.  
    {
  84.  
    value: [4200, 3000, 20000, 35000, 50000, 18000],
  85.  
    name: '企业得分占比'
  86.  
    },
  87.  
    {
  88.  
    value: [5000, 14000, 28000, 26000, 42000, 21000],
  89.  
    name: '市均值得分占比'
  90.  
    }
  91.  
    ]
  92.  
    }
  93.  
    ]
  94.  
    }
  95.  
    this.myChart.setOption(option, true);
  96.  
    }
  97.  
    }

案例六:自定义tooltip提示

学新通

  1.  
    import Common from "@/util/echatrs/common";
  2.  
    import * as echarts from "echarts";
  3.  
    export default class BarLine extends Common {
  4.  
     
  5.  
    constructor(el, option) {
  6.  
    super(el, option);
  7.  
    this.init();
  8.  
     
  9.  
    }
  10.  
    init() {
  11.  
    this.myChart = this.$e.init(this.$el);
  12.  
    this.setCharts();
  13.  
    this.myChart.setOption(this.chartOption, true);
  14.  
    window.addEventListener("resize", () => {
  15.  
    this.myChart.resize();
  16.  
    });
  17.  
    this.myChart.on("click", (a) => {
  18.  
    if (this.option.click) {
  19.  
    this.option.click(a);
  20.  
    }
  21.  
    });
  22.  
    }
  23.  
     
  24.  
    setCharts() {
  25.  
     
  26.  
    if (this.option.theme === "dark") {
  27.  
    this.chartOption = {
  28.  
    legend: {
  29.  
    itemHeight: 6,
  30.  
    itemWidth: 16,
  31.  
    x: "center", //居右显示
  32.  
    inactiveColor: "rgba(0,0,0,0.9)", // 图例关闭后的颜色
  33.  
    textStyle: {
  34.  
    fontSize: 14,
  35.  
    color: "#7E9CC1", // 图例的文字颜色
  36.  
    padding: [3, 0, 0, 0],
  37.  
    },
  38.  
    data: ["延迟完工项目数量", "延迟完工率"],
  39.  
    },
  40.  
    tooltip: {
  41.  
    trigger: "axis",
  42.  
    axisPointer: { // 鼠标移上去时,触发后的样式
  43.  
    type: "shadow"
  44.  
    },
  45.  
    padding: 0,
  46.  
    borderColor: "rgba(0, 0, 0, 0)",
  47.  
    borderWidth: 0,
  48.  
    formatter: function (obj) {
  49.  
    // console.log(obj);
  50.  
    var name = obj[0].name || obj[1].name;
  51.  
    var number = obj[0].value;
  52.  
    var rate = obj[1].value;
  53.  
    // const lineImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHxSURBVHgB7ZpPSwJBGId/O0YSBPkJwg51jPwCldcgqIunIKVTFNi9ix6iax66JRp0qosQdCnwT6cISoJOHdw61SUMglLRad6VrQjT0sl1aB4YWN1lmWf2fWdmd8aATSLiAdxhcD5tlV7EQB4cMSytJz/ IhKbXtRqaXHkhRqYKFf8WI6YdYH4RgHqVN7GBKv4XKLyQfEjCPXwoGqUmAiiMFTF5ZpiIikmoCqis2FQHC3gNFrAabSA0ygv0Ic2KQRW4B0cggzM5yeM7G jHdp ArIq3 m9/m8INSJzf2eFQzM8/W7MDY9BFlIF5k8OUCyXml5D4dKzAoXAqhB4aXqNp38AMpEqQOFBpZvoJP5M8uYKty2SmHJgcXQcspAqEL08bdkL9bQAjc7dRk/mnEYLNCN2fY5d0TP9JVKT2IZ6olDu0JobEdS9JiZnpc5gbaQ/AWp1X2rnvfIEHftSceucbKQJUKv7j/awdnbccEJXLL9a50ik1VjxG6QINGr178g/PlhvXzToyaDtHKBWpBK9yP2o4l JCAHKjfTMAjrBEJ/XORRGjwNOowWcRgs4jRZwGrHMamSgKgbyDNVqFqrCEWPoq26Blu3Vw6RNHwyhSBGM aGWRH2zB zdKja0b4LzsMiL3ly95zwjStaKGmp4wRu/9633ZSgvNQAAAABJRU5ErkJggg==";
  54.  
    const darkImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHJSURBVHgB7ZpPTsJAFMa/KQZd1sQDwM6ddmVcKTfQE4gngCtwAzmBeBJwZVyBiSbGDcVoogkLookJCNR5HRpMxIL1wTA6v6TJ9E a9715b/o6eQIR9cBFHwUE2A PZUSggQHK2BWV8SXiIsjAQVWOMjADH0PkpBBfCbgMmjDH AgfaXgp6f28nIc8zMPFO7qODJ0CTCWFPSHDJ4DBODAcK0A3VoBurADdGC9gBQlpbsniaRUs F0ge4VEJJ4BLuN/ 67/G0KTqL2qcIjDTQEH62CDVcDhHdAZxD TSS xAErsaQJoBjhhFeCuqGOR2CT TKUNtKYkMS2ZRxtgg1VA6UGuQr34ZyiJl1ZAcxsLxxZzurEC4ig/A2dtzJW5fHaoHjqWm5W1F3VOy tplreCjWCfAfK6dzM2nqCxdy3vPYEdNgHk9dwtUGzJeqj/9T7VSMV7JWRaxfoTWARM8vp3NN7U31fpESwk3hulypO umTILIZPgnKiuqnGSX8p7eaubqwA3VgBurECdPMHBAjUYC4NBwOcw1SGKIuwyaOHOkxsNdgRWQee6ISNE3TBHPyRzaNulQjqm1CtBxo2SGaA8pVCfg0noeMlH8Uifmj5AZoIAAAAAElFTkSuQmCC";
  55.  
     
  56.  
    // console.log(name, number, rate);
  57.  
    return "<div style=\"display:flex;flex-direction:column;justify-content:space-between;min-width:160px;height:104px;background: #001737;border-radius: 4px;border: 1px solid #1991FF;box-shadow: inset 0px 0px 10px rgba(0, 201, 255, 0.6);padding:12px;\">"
  58.  
    "<div style='display:flex;align-items:center;height:24px;margin-bottom:12px'>" "<img width='24px' src="https://blog.csdn.net/qq_44603011/article/details/ darkImg " /> " "<span style='margin-left:8px;font-weight: 500;font-size: 16px;line-height: 22px;color: #fff;'>" name "</span></div>"
  59.  
    "<div style='width:100%;height:45px;display:flex;justify-content:space-around'>"
  60.  
    "<div style='display:flex;flex-direction:column;justify-content:space-between;align-items:center'>"
  61.  
    "<span style='font-weight: 500;font-size: 20px;line-height: 24px;color: #009D85;'>" number "项</span>"
  62.  
    "<span style='font-weight: 400;font-size: 12px;line-height: 17px;color: #728EB1;'>延迟完工</span>"
  63.  
    "</div>"
  64.  
    "<div style='display:flex;flex-direction:column;justify-content:space-between;align-items:center'>"
  65.  
    "<span style='font-weight: 500;font-size: 20px;line-height: 24px;color: #F6AB00;'>" rate "%</span>"
  66.  
    "<span style='font-weight: 400;font-size: 12px;line-height: 17px;color: #728EB1;'>延迟率</span>"
  67.  
    "</div>"
  68.  
    "</div>"
  69.  
    "</div>";
  70.  
    }
  71.  
    },
  72.  
    grid: {
  73.  
    left: "3.5%",
  74.  
    right: "2.5%",
  75.  
    bottom: "21%",
  76.  
    containLabel: false
  77.  
    },
  78.  
    xAxis: {
  79.  
    type: "category",
  80.  
    data: this.option.xValue,
  81.  
    splitLine: {//分割线配置
  82.  
    show: false
  83.  
    },
  84.  
    axisLabel: { // x轴线文字的样式
  85.  
    rotate: 45,
  86.  
    textStyle: {
  87.  
    color: "#707793",
  88.  
    fontSize: 12
  89.  
    },
  90.  
    },
  91.  
    axisTick: {
  92.  
    show: false
  93.  
    },
  94.  
    axisLine: {//x轴线的颜色以及宽度
  95.  
    show: true,
  96.  
    lineStyle: {
  97.  
    color: "rgba(0, 201, 255, 0.2)",
  98.  
    type: "solid",
  99.  
    width: 1
  100.  
    }
  101.  
    }
  102.  
    },
  103.  
    yAxis: [
  104.  
    {
  105.  
    type: "value",
  106.  
    name: "项目数量:个",
  107.  
    nameTextStyle: { // name的样式
  108.  
    color: "#707793",
  109.  
    fontSize: 14
  110.  
    },
  111.  
    splitLine: {//分割线配置
  112.  
    show: false,
  113.  
    },
  114.  
    axisTick: { // 取消刻度线上的小刻度
  115.  
    show: true
  116.  
    },
  117.  
    axisLine: { // 取消整个刻度线
  118.  
    show: true,
  119.  
    lineStyle: {
  120.  
    color: "rgba(0, 201, 255, 0.2)",
  121.  
    type: "solid",
  122.  
    width: 1
  123.  
    }
  124.  
    },
  125.  
    axisLabel: { // y轴的文字样式
  126.  
    textStyle: {
  127.  
    color: "#707793",
  128.  
    fontSize: 14
  129.  
    },
  130.  
    }
  131.  
    },
  132.  
    {
  133.  
    type: "value",
  134.  
    name: "延迟率:%",
  135.  
    nameTextStyle: {
  136.  
    color: "#707793",
  137.  
    fontSize: 14
  138.  
    },
  139.  
    position: "right",
  140.  
    splitLine: {//分割线配置
  141.  
    show: false,
  142.  
    },
  143.  
    axisTick: { // 取消刻度线上的小刻度
  144.  
    show: true
  145.  
    },
  146.  
    axisLine: { // 取消整个刻度线
  147.  
    show: true,
  148.  
    lineStyle: {
  149.  
    color: "rgba(0, 201, 255, 0.2)",
  150.  
    type: "solid",
  151.  
    width: 1
  152.  
    }
  153.  
    },
  154.  
    axisLabel: {
  155.  
    show: true,
  156.  
    textStyle: {
  157.  
    color: "#707793",
  158.  
    fontSize: 14
  159.  
    },
  160.  
    }
  161.  
    },
  162.  
    // {
  163.  
    // type: "value",
  164.  
    // gridIndex: 0,
  165.  
    // min: 50,
  166.  
    // max: 100,
  167.  
    // splitNumber: 8,
  168.  
    // splitLine: {
  169.  
    // show: false
  170.  
    // },
  171.  
    // axisLine: {
  172.  
    // show: false
  173.  
    // },
  174.  
    // axisTick: {
  175.  
    // show: false
  176.  
    // },
  177.  
    // axisLabel: {
  178.  
    // show: false
  179.  
    // },
  180.  
    // splitArea: {
  181.  
    // show: true,
  182.  
    // areaStyle: {
  183.  
    // color: ["rgba(250,250,250,0.0)", "rgba(250,250,250,0.05)"]
  184.  
    // }
  185.  
    // }
  186.  
    // }
  187.  
     
  188.  
    ],
  189.  
    series: [
  190.  
    {
  191.  
    name: "延迟完工项目数量",
  192.  
    type: "bar",
  193.  
    color: "#1795ff",
  194.  
    nameStyle: {
  195.  
    width: 100
  196.  
    },
  197.  
    yAxisIndex: 0, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  198.  
    barWidth: "14px", // 柱子的宽度
  199.  
    itemStyle: {
  200.  
    normal: {
  201.  
    color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
  202.  
    offset: 0,
  203.  
    color: "#00C9FF" // 0% 处的颜色
  204.  
    }, {
  205.  
    offset: 1,
  206.  
    color: "#1991FF" // 100% 处的颜色
  207.  
    }], false),
  208.  
    lineStyle: {
  209.  
    width: 3
  210.  
    },
  211.  
    barBorderRadius: [2, 2, 0, 0],
  212.  
    },
  213.  
    },
  214.  
    data: this.option.yCount
  215.  
    },
  216.  
    {
  217.  
    name: "延迟完工率",
  218.  
    type: "line",
  219.  
    color: "#F6AB00",
  220.  
    barWidth: "14px", // 柱子的宽度
  221.  
    yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  222.  
    showAllSymbol: true, //显示所有图形。
  223.  
    smooth: false, //平滑曲线显示
  224.  
    symbol: "circle",
  225.  
    symbolSize: 5, //标记的大小
  226.  
    itemStyle: {
  227.  
    normal: {
  228.  
    lineStyle: {
  229.  
    width: 1
  230.  
    }
  231.  
    }
  232.  
    },
  233.  
    data: this.option.yRate
  234.  
    },
  235.  
     
  236.  
    ]
  237.  
    };
  238.  
    } else {
  239.  
    this.chartOption = {
  240.  
    legend: {
  241.  
    itemHeight: 6,
  242.  
    itemWidth: 16,
  243.  
    x: "center", //居右显示
  244.  
    inactiveColor: "rgba(0,0,0,0.3)", // 图例关闭后的颜色
  245.  
    textStyle: {
  246.  
    fontSize: 14,
  247.  
    color: "#707793", // 图例的文字颜色
  248.  
    padding: [3, 0, 0, 0],
  249.  
    },
  250.  
    data: ["延迟完工项目数量", "延迟完工率"],
  251.  
    },
  252.  
    tooltip: {
  253.  
    trigger: "axis",
  254.  
    axisPointer: { // 鼠标移上去时,触发后的样式
  255.  
    type: "shadow"
  256.  
    },
  257.  
    padding: 0,
  258.  
    borderColor: "rgba(0, 0, 0, 0)",
  259.  
    borderWidth: 0,
  260.  
    formatter: function (obj) {
  261.  
    // console.log(obj);
  262.  
    var name = obj[0].name || obj[1].name;
  263.  
    var number = obj[0].value;
  264.  
    var rate = obj[1].value;
  265.  
    const lineImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHxSURBVHgB7ZpPSwJBGId/O0YSBPkJwg51jPwCldcgqIunIKVTFNi9ix6iax66JRp0qosQdCnwT6cISoJOHdw61SUMglLRad6VrQjT0sl1aB4YWN1lmWf2fWdmd8aATSLiAdxhcD5tlV7EQB4cMSytJz/ IhKbXtRqaXHkhRqYKFf8WI6YdYH4RgHqVN7GBKv4XKLyQfEjCPXwoGqUmAiiMFTF5ZpiIikmoCqis2FQHC3gNFrAabSA0ygv0Ic2KQRW4B0cggzM5yeM7G jHdp ArIq3 m9/m8INSJzf2eFQzM8/W7MDY9BFlIF5k8OUCyXml5D4dKzAoXAqhB4aXqNp38AMpEqQOFBpZvoJP5M8uYKty2SmHJgcXQcspAqEL08bdkL9bQAjc7dRk/mnEYLNCN2fY5d0TP9JVKT2IZ6olDu0JobEdS9JiZnpc5gbaQ/AWp1X2rnvfIEHftSceucbKQJUKv7j/awdnbccEJXLL9a50ik1VjxG6QINGr178g/PlhvXzToyaDtHKBWpBK9yP2o4l JCAHKjfTMAjrBEJ/XORRGjwNOowWcRgs4jRZwGrHMamSgKgbyDNVqFqrCEWPoq26Blu3Vw6RNHwyhSBGM aGWRH2zB zdKja0b4LzsMiL3ly95zwjStaKGmp4wRu/9633ZSgvNQAAAABJRU5ErkJggg==";
  266.  
    // const darkImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHJSURBVHgB7ZpPTsJAFMa/KQZd1sQDwM6ddmVcKTfQE4gngCtwAzmBeBJwZVyBiSbGDcVoogkLookJCNR5HRpMxIL1wTA6v6TJ9E a9715b/o6eQIR9cBFHwUE2A PZUSggQHK2BWV8SXiIsjAQVWOMjADH0PkpBBfCbgMmjDH AgfaXgp6f28nIc8zMPFO7qODJ0CTCWFPSHDJ4DBODAcK0A3VoBurADdGC9gBQlpbsniaRUs F0ge4VEJJ4BLuN/ 67/G0KTqL2qcIjDTQEH62CDVcDhHdAZxD TSS xAErsaQJoBjhhFeCuqGOR2CT TKUNtKYkMS2ZRxtgg1VA6UGuQr34ZyiJl1ZAcxsLxxZzurEC4ig/A2dtzJW5fHaoHjqWm5W1F3VOy tplreCjWCfAfK6dzM2nqCxdy3vPYEdNgHk9dwtUGzJeqj/9T7VSMV7JWRaxfoTWARM8vp3NN7U31fpESwk3hulypO umTILIZPgnKiuqnGSX8p7eaubqwA3VgBurECdPMHBAjUYC4NBwOcw1SGKIuwyaOHOkxsNdgRWQee6ISNE3TBHPyRzaNulQjqm1CtBxo2SGaA8pVCfg0noeMlH8Uifmj5AZoIAAAAAElFTkSuQmCC";
  267.  
     
  268.  
    // console.log(name, number, rate);
  269.  
    return "<div style=\"display:flex;flex-direction:column;justify-content:space-between;min-width:160px;height:104px;background: #FFFFFF;border-radius: 4px;border: 2px solid #FFFFFF;box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.08);padding:12px;\">"
  270.  
    "<div style='display:flex;align-items:center;height:24px;margin-bottom:12px'>" "<img width='24px' src="https://blog.csdn.net/qq_44603011/article/details/ lineImg " /> " "<span style='margin-left:8px;font-weight: 500;font-size: 16px;line-height: 22px;color: #313B5E;'>" name "</span></div>"
  271.  
    "<div style='width:100%;height:45px;display:flex;justify-content:space-around'>"
  272.  
    "<div style='display:flex;flex-direction:column;justify-content:space-between;align-items:center'>"
  273.  
    "<span style='font-weight: 500;font-size: 20px;line-height: 24px;color: #009D85;'>" number "项</span>"
  274.  
    "<span style='font-weight: 400;font-size: 12px;line-height: 17px;color: #728EB1;'>延迟完工</span>"
  275.  
    "</div>"
  276.  
    "<div style='display:flex;flex-direction:column;justify-content:space-between;align-items:center'>"
  277.  
    "<span style='font-weight: 500;font-size: 20px;line-height: 24px;color: #F6AB00;'>" rate "%</span>"
  278.  
    "<span style='font-weight: 400;font-size: 12px;line-height: 17px;color: #728EB1;'>延迟率</span>"
  279.  
    "</div>"
  280.  
    "</div>"
  281.  
    "</div>";
  282.  
    }
  283.  
    },
  284.  
    grid: {
  285.  
    left: "3.5%",
  286.  
    right: "2.5%",
  287.  
    bottom: "21%",
  288.  
    containLabel: false
  289.  
    },
  290.  
    xAxis: {
  291.  
    type: "category",
  292.  
    data: this.option.xValue,
  293.  
    splitLine: {//分割线配置
  294.  
    show: false
  295.  
    },
  296.  
    axisLabel: { // x轴线文字的样式
  297.  
    rotate: 45,
  298.  
    textStyle: {
  299.  
    color: "#707793",
  300.  
    fontSize: 12
  301.  
    },
  302.  
    },
  303.  
    axisTick: {
  304.  
    show: false
  305.  
    },
  306.  
    axisLine: {//x轴线的颜色以及宽度
  307.  
    show: true,
  308.  
    lineStyle: {
  309.  
    color: "rgba(0, 112, 107, 0.2)",
  310.  
    type: "solid",
  311.  
    width: 1
  312.  
    }
  313.  
    }
  314.  
    },
  315.  
    yAxis: [
  316.  
    {
  317.  
    type: "value",
  318.  
    name: "项目数量:个",
  319.  
    nameTextStyle: { // name的样式
  320.  
    color: "#707793",
  321.  
    fontSize: 14
  322.  
    },
  323.  
    splitLine: {//分割线配置
  324.  
    show: false,
  325.  
    },
  326.  
    axisTick: { // 取消刻度线上的小刻度
  327.  
    show: true
  328.  
    },
  329.  
    axisLine: { // 取消整个刻度线
  330.  
    show: true,
  331.  
    lineStyle: {
  332.  
    color: "rgba(0, 112, 107, 0.2)",
  333.  
    type: "solid",
  334.  
    width: 1
  335.  
    }
  336.  
    },
  337.  
    axisLabel: { // y轴的文字样式
  338.  
    textStyle: {
  339.  
    color: "#707793",
  340.  
    fontSize: 14
  341.  
    },
  342.  
    }
  343.  
    },
  344.  
    {
  345.  
    type: "value",
  346.  
    name: "延迟率:%",
  347.  
    nameTextStyle: {
  348.  
    color: "#707793",
  349.  
    fontSize: 14
  350.  
    },
  351.  
    position: "right",
  352.  
    splitLine: {//分割线配置
  353.  
    show: false,
  354.  
    },
  355.  
    axisTick: { // 取消刻度线上的小刻度
  356.  
    show: true
  357.  
    },
  358.  
    axisLine: { // 取消整个刻度线
  359.  
    show: true,
  360.  
    lineStyle: {
  361.  
    color: "rgba(0, 112, 107, 0.2)",
  362.  
    type: "solid",
  363.  
    width: 1
  364.  
    }
  365.  
    },
  366.  
    axisLabel: {
  367.  
    show: true,
  368.  
    textStyle: {
  369.  
    color: "#707793",
  370.  
    fontSize: 14
  371.  
    },
  372.  
    }
  373.  
    },
  374.  
    // {
  375.  
    // type: "value",
  376.  
    // gridIndex: 0,
  377.  
    // min: 50,
  378.  
    // max: 100,
  379.  
    // splitNumber: 8,
  380.  
    // splitLine: {
  381.  
    // show: false
  382.  
    // },
  383.  
    // axisLine: {
  384.  
    // show: false
  385.  
    // },
  386.  
    // axisTick: {
  387.  
    // show: false
  388.  
    // },
  389.  
    // axisLabel: {
  390.  
    // show: false
  391.  
    // },
  392.  
    // splitArea: {
  393.  
    // show: true,
  394.  
    // areaStyle: {
  395.  
    // color: ["rgba(250,250,250,0.0)", "rgba(250,250,250,0.05)"]
  396.  
    // }
  397.  
    // }
  398.  
    // }
  399.  
     
  400.  
    ],
  401.  
    series: [
  402.  
    {
  403.  
    name: "延迟完工项目数量",
  404.  
    type: "bar",
  405.  
    color: "#009D85",
  406.  
    nameStyle: {
  407.  
    width: 100
  408.  
    },
  409.  
    yAxisIndex: 0, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  410.  
    barWidth: "14px", // 柱子的宽度
  411.  
    itemStyle: {
  412.  
    normal: {
  413.  
    color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
  414.  
    offset: 0,
  415.  
    color: "#00C29F" // 0% 处的颜色
  416.  
    }, {
  417.  
    offset: 1,
  418.  
    color: "#009D85" // 100% 处的颜色
  419.  
    }], false),
  420.  
    lineStyle: {
  421.  
    width: 3
  422.  
    },
  423.  
    barBorderRadius: [2, 2, 0, 0],
  424.  
    }
  425.  
    },
  426.  
    data: this.option.yCount
  427.  
    },
  428.  
    {
  429.  
    name: "延迟完工率",
  430.  
    type: "line",
  431.  
    color: "#F6AB00",
  432.  
    barWidth: "14px", // 柱子的宽度
  433.  
    yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  434.  
    showAllSymbol: true, //显示所有图形。
  435.  
    smooth: false, //平滑曲线显示
  436.  
    symbol: "circle",
  437.  
    symbolSize: 5, //标记的大小
  438.  
    itemStyle: {
  439.  
    normal: {
  440.  
    lineStyle: {
  441.  
    width: 1
  442.  
    }
  443.  
    }
  444.  
    },
  445.  
    data: this.option.yRate
  446.  
    },
  447.  
     
  448.  
    ]
  449.  
    };
  450.  
     
  451.  
    }
  452.  
    }
  453.  
     
  454.  
     
  455.  
    setField() {
  456.  
    const colors = this.option.colors;
  457.  
    const sourceData = this.option.data;
  458.  
    const total = sourceData.reduce((num, item) => {
  459.  
    num = item.value;
  460.  
    return num;
  461.  
    }, 0);
  462.  
    // 内环间隔距离
  463.  
    const inSplitWidth = 3;
  464.  
    // 为了实现内环间隔距离,需要额外插入的数值。200 只是个系数,值越大,单位间隔的距离越小。
  465.  
    const inSplitValue = Math.floor(total / (150 / inSplitWidth));
  466.  
    // 外环间隔比内环间隔大的值
  467.  
    const itemSplitWidth = 2;
  468.  
    // 外环间隔距离
  469.  
    const outSplitWidth = inSplitWidth itemSplitWidth;
  470.  
    // 为了实现外环间隔距离,需要额外插入的数值。
  471.  
    const outSplitValue = Math.floor(total / (150 / outSplitWidth));
  472.  
     
  473.  
    // 内环数据的总数
  474.  
    const valueTotal = total inSplitValue * sourceData.length;
  475.  
     
  476.  
    function getTextAngle(currentAngle, angle) {
  477.  
    currentAngle = currentAngle angle;
  478.  
    if (currentAngle <= 90) {
  479.  
    return -currentAngle;
  480.  
    } else if (currentAngle <= 180 && currentAngle > 90) {
  481.  
    return 180 - currentAngle;
  482.  
    } else if (currentAngle < 270 && currentAngle > 180) {
  483.  
    return 180 - currentAngle;
  484.  
    } else if (currentAngle < 360 && currentAngle >= 270) {
  485.  
    return 360 - currentAngle;
  486.  
    }
  487.  
    }
  488.  
    // 内环数据。在原数据的后面添加间隔数据(间隔块设置颜色透明)
  489.  
    const valueData = sourceData.reduce((arr, item) => {
  490.  
    const currentTotal = arr.reduce((total, item) => {
  491.  
    total = item.value;
  492.  
    return total;
  493.  
    }, 0);
  494.  
     
  495.  
    const currentAngle = 360 * (currentTotal / valueTotal);
  496.  
    const angle = 360 * (item.value / valueTotal) / 2;
  497.  
     
  498.  
    arr.push({
  499.  
    name: item.name,
  500.  
    value: item.value,
  501.  
    label: {
  502.  
    lineHeight: 80,
  503.  
    rotate: getTextAngle(currentAngle, angle)
  504.  
    }
  505.  
    }, {
  506.  
    name: "",
  507.  
    value: inSplitValue,
  508.  
    itemStyle: {
  509.  
    color: "transparent",
  510.  
    opacity: 0
  511.  
    },
  512.  
    label: {
  513.  
    show: false
  514.  
    },
  515.  
    labelLine: {
  516.  
    show: false
  517.  
    }
  518.  
    });
  519.  
    return arr;
  520.  
    }, []);
  521.  
     
  522.  
    // 原数据需要减去的值(外环每块的数据都要比原数据少一点才能达到外环嵌在内环的效果)
  523.  
    const itemReduced = outSplitValue - inSplitValue;
  524.  
    // 外环数据
  525.  
    const outValueData = sourceData.reduce((arr, item) => {
  526.  
    const currentTotal = arr.reduce((total, item) => {
  527.  
    total = item.value;
  528.  
    return total;
  529.  
    }, 0);
  530.  
     
  531.  
    const currentAngle = 360 * (currentTotal / valueTotal);
  532.  
    const angle = 360 * (item.value / valueTotal) / 2;
  533.  
     
  534.  
    arr.push({
  535.  
    name: item.name,
  536.  
    value: item.value,
  537.  
    label: {
  538.  
    color: "#fff",
  539.  
    position: "inside",
  540.  
    align: "center",
  541.  
    lineHeight: 10,
  542.  
    // verticalAlign: 'top',
  543.  
    rotate: getTextAngle(currentAngle, angle)
  544.  
    }
  545.  
    }, {
  546.  
    name: "",
  547.  
    value: outSplitValue,
  548.  
    itemStyle: {
  549.  
    color: "transparent",
  550.  
    opacity: 0
  551.  
    },
  552.  
    label: {
  553.  
    show: false,
  554.  
    textStyle: {
  555.  
    fontSize: 12,
  556.  
    color: "#fff"
  557.  
    }
  558.  
    },
  559.  
    labelLine: {
  560.  
    show: false
  561.  
    }
  562.  
    });
  563.  
     
  564.  
    return arr;
  565.  
    }, []);
  566.  
     
  567.  
    return {
  568.  
    colors,
  569.  
    total,
  570.  
    valueData,
  571.  
    itemReduced,
  572.  
    valueTotal,
  573.  
    outValueData
  574.  
    };
  575.  
    }
  576.  
    }

案例七:(立体柱状图) 

学新通

  1.  
    setCharts() {
  2.  
     
  3.  
     
  4.  
     
  5.  
     
  6.  
     
  7.  
     
  8.  
    const barWidth = 10
  9.  
    this.chartOption = {
  10.  
     
  11.  
    grid: {
  12.  
    left: "15%",
  13.  
    right: "0%",
  14.  
    bottom: "15%",
  15.  
    containLabel: false
  16.  
    },
  17.  
    legend: {
  18.  
    itemHeight: 6, // 图例的高度
  19.  
    itemWidth: 16, // 图例的宽度
  20.  
    x: "center", //居右显示
  21.  
    inactiveColor: "rgba(0,0,0,0.3)",// 图例关闭后的颜色
  22.  
    textStyle: {
  23.  
    fontSize: 12,
  24.  
    color: "#A1D1EF", // 图例的文字颜色
  25.  
    padding: [0, 0, 0, 0],
  26.  
    },
  27.  
    selectedMode: false,
  28.  
    data: ['老人数', '预警数'],
  29.  
    },
  30.  
    tooltip: {
  31.  
    trigger: 'axis',
  32.  
    axisPointer: {
  33.  
    type: 'shadow'
  34.  
    },
  35.  
    formatter: function (e) {
  36.  
    // console.log(e);
  37.  
    var str =
  38.  
    e[4].axisValue
  39.  
    "<br>"
  40.  
    "<span style='display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:"
  41.  
    e[4].color.colorStops[0].color
  42.  
    ";'></span>"
  43.  
    ""
  44.  
    e[4].seriesName
  45.  
    " : "
  46.  
    e[4].value
  47.  
    "<br>"
  48.  
    "<span style='display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:"
  49.  
    e[5].color.colorStops[0].color
  50.  
    ";'></span>"
  51.  
    ""
  52.  
    e[5].seriesName
  53.  
    " : "
  54.  
    e[5].value;
  55.  
    return str;
  56.  
    }
  57.  
     
  58.  
    },
  59.  
    xAxis: {
  60.  
    type: 'category',
  61.  
    data: ['市区', '高邮市', '仪征市', '江都区', '宝应县'
  62.  
    ],
  63.  
    splitLine: {//分割线配置
  64.  
    show: false
  65.  
    },
  66.  
    axisLabel: { // x轴线文字的样式
  67.  
    textStyle: {
  68.  
    color: "#A1D1EF",
  69.  
    fontSize: 12
  70.  
    },
  71.  
    },
  72.  
    axisTick: {
  73.  
    show: false
  74.  
    },
  75.  
    axisLine: {//x轴线的颜色以及宽度
  76.  
    show: true,
  77.  
    lineStyle: {
  78.  
    color: "rgba(39, 166, 255, 0.5)",
  79.  
    type: "solid",
  80.  
    width: 1
  81.  
    }
  82.  
    }
  83.  
    },
  84.  
    yAxis:
  85.  
    {
  86.  
    type: "value",
  87.  
    name: '单位:kw·h ',
  88.  
    splitNumber: 5,
  89.  
    nameTextStyle: { // name的样式
  90.  
    color: "#6699C1",
  91.  
    align: 'left',
  92.  
    padding: [0, 0, 0, -25]
  93.  
    },
  94.  
     
  95.  
    axisTick: { // 取消刻度线上的小刻度
  96.  
    show: false
  97.  
    },
  98.  
    axisLine: { // 取消整个刻度线
  99.  
    show: false
  100.  
    },
  101.  
     
  102.  
    splitLine: {
  103.  
    lineStyle: {
  104.  
    color: "#27A6FF",
  105.  
    opacity: 0.3,
  106.  
    type: "dashed",
  107.  
    },
  108.  
    },
  109.  
    axisLabel: {
  110.  
    textStyle: {
  111.  
    color: "#A1D1EF",
  112.  
    },
  113.  
    },
  114.  
    },
  115.  
     
  116.  
    series: [
  117.  
    // (0)第一个柱子 中间的正方形
  118.  
    {
  119.  
    type: "pictorialBar", // 象型柱状
  120.  
    symbol: "diamond",
  121.  
     
  122.  
    symbolSize: [barWidth, 5], // 调整大小
  123.  
    // symbolOffset: [-13, -3], // 图形相对于原本位置的偏移
  124.  
    symbolOffset: ["-55%", -3], // 图形相对于原本位置的偏移
  125.  
    symbolPosition: "end",
  126.  
    z: 12,
  127.  
    color: "#6ac1ff",
  128.  
    data: [112, 23, 56, 6, 89],
  129.  
    },
  130.  
    // (1)第二个柱子中间的正方形
  131.  
    {
  132.  
    type: "pictorialBar",
  133.  
    symbol: "diamond",
  134.  
    symbolSize: [barWidth, 8],
  135.  
    // symbolOffset: [13, -3],
  136.  
    symbolOffset: ["55%", -3],
  137.  
    symbolPosition: "end",
  138.  
    z: 12,
  139.  
    color: "#ffad96",
  140.  
    data: [12, 213, 256, 16, 9],
  141.  
    },
  142.  
    // (2)第一个柱子 底部的正方形
  143.  
    {
  144.  
    type: "pictorialBar",
  145.  
    symbol: "diamond",
  146.  
    symbolSize: [barWidth, 5],
  147.  
    // symbolOffset: [-13, 3],
  148.  
    symbolOffset: ["-55%", 3],
  149.  
    z: 12,
  150.  
    color: "#6ac1ff",
  151.  
    data: [112, 23, 56, 6, 89],
  152.  
    },
  153.  
    // (3)第二个柱子 底部的正方形
  154.  
    {
  155.  
    name: "",
  156.  
    type: "pictorialBar",
  157.  
    symbol: "diamond",
  158.  
    symbolSize: [barWidth, 5],
  159.  
    // symbolOffset: [13, 3],
  160.  
    symbolOffset: ["55%", 3],
  161.  
    color: "#ffad96",
  162.  
    z: 12,
  163.  
    data: [12, 213, 256, 16, 9],
  164.  
    },
  165.  
    // (4)一个柱子, 下方有颜色填充的的柱子
  166.  
    {
  167.  
    name: '老人数',
  168.  
    type: "bar",
  169.  
    barWidth: barWidth,
  170.  
    barGap: "20%",
  171.  
    // zlevel: 2,
  172.  
    stack: "1",
  173.  
    itemStyle: {
  174.  
    opacity: 1,
  175.  
    color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
  176.  
    {
  177.  
    offset: 0.5,
  178.  
    color: "#27a6ff",
  179.  
    // color: '#2c61bc',
  180.  
    },
  181.  
    {
  182.  
    offset: 0.5,
  183.  
    color: "#0f85d7",
  184.  
    },
  185.  
    {
  186.  
    offset: 1,
  187.  
    color: "#1d90e1",
  188.  
    },
  189.  
    ]),
  190.  
    // barBorderRadius: 0,
  191.  
    borderRadius: 0,
  192.  
    },
  193.  
    // 是否在每个柱子显示 相应的值
  194.  
    label: {
  195.  
    show: false,
  196.  
     
  197.  
    position: ["0", "-25"],
  198.  
    color: "#005dd9",
  199.  
    fontSize: 14,
  200.  
    fontWeight: 'bold'
  201.  
    },
  202.  
    data: [112, 23, 56, 6, 89],
  203.  
    },
  204.  
    // (5)第二个柱子, 下方有颜色填充的的柱子
  205.  
    {
  206.  
    name: '预警数',
  207.  
    type: "bar",
  208.  
    stack: "2",
  209.  
    barWidth: barWidth,
  210.  
    itemStyle: {
  211.  
    opacity: 1,
  212.  
    color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
  213.  
    {
  214.  
    offset: 0.5,
  215.  
    color: "#ff744c",
  216.  
    },
  217.  
    {
  218.  
    offset: 0.5,
  219.  
    color: "#d2512c",
  220.  
    },
  221.  
    {
  222.  
    offset: 1,
  223.  
    color: "#eb653e",
  224.  
    },
  225.  
    ]),
  226.  
    // barBorderRadius: 0,
  227.  
    borderRadius: 0,
  228.  
    },
  229.  
    // 是否在每个柱子显示 相应的值
  230.  
    label: {
  231.  
    show: false,
  232.  
    position: ["0", "-25"],
  233.  
    color: "#06e6f6",
  234.  
    fontSize: 14,
  235.  
    fontWeight: 'bold'
  236.  
    },
  237.  
    data: [12, 213, 256, 16, 9],
  238.  
    },
  239.  
    ]
  240.  
     
  241.  
    }
  242.  
    }

 案例八:(水平立体圆柱图)

学新通

  1.  
    setCharts() {
  2.  
    const y1 = [12, 23, 56, 88, 56]
  3.  
    const y2 = [89, 56, 88, 32, 89]
  4.  
     
  5.  
    const y12 = [];
  6.  
     
  7.  
    for (let i = 0; i < y1.length; i ) {
  8.  
    y12.push(y1[i] y2[i]);
  9.  
    }
  10.  
    this.chartOption = {
  11.  
     
  12.  
    grid: {
  13.  
    left: "15%",
  14.  
    right: "8%",
  15.  
    bottom: "15%",
  16.  
    containLabel: false
  17.  
    },
  18.  
    legend: {
  19.  
    itemHeight: 6, // 图例的高度
  20.  
    itemWidth: 16, // 图例的宽度
  21.  
    x: "center", //居右显示
  22.  
    inactiveColor: "rgba(0,0,0,0.3)",// 图例关闭后的颜色
  23.  
    textStyle: {
  24.  
    fontSize: 12,
  25.  
    color: "#A1D1EF", // 图例的文字颜色
  26.  
    padding: [0, 0, 0, 0],
  27.  
    },
  28.  
    selectedMode: false,
  29.  
    data: ['处理数', '预警数'],
  30.  
    },
  31.  
    tooltip: {
  32.  
    trigger: 'axis',
  33.  
    axisPointer: {
  34.  
    type: 'shadow'
  35.  
    },
  36.  
    formatter: function (e) {
  37.  
    // console.log(e);
  38.  
    var str =
  39.  
    e[2].axisValue
  40.  
    "<br>"
  41.  
    "<span style='display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:"
  42.  
    e[2].color.colorStops[0].color
  43.  
    ";'></span>"
  44.  
    ""
  45.  
    e[4].seriesName
  46.  
    " : "
  47.  
    e[2].value
  48.  
    "<br>"
  49.  
    "<span style='display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:"
  50.  
    e[4].color.colorStops[0].color
  51.  
    ";'></span>"
  52.  
    ""
  53.  
    e[4].seriesName
  54.  
    " : "
  55.  
    e[4].value;
  56.  
    return str;
  57.  
    }
  58.  
     
  59.  
    },
  60.  
    xAxis: {
  61.  
    type: 'value',
  62.  
     
  63.  
    splitLine: {//分割线配置
  64.  
    show: false
  65.  
    },
  66.  
    axisLabel: { // x轴线文字的样式
  67.  
    show: true,
  68.  
    textStyle: {
  69.  
    color: "#A1D1EF",
  70.  
    fontSize: 12
  71.  
    },
  72.  
    },
  73.  
    axisTick: {
  74.  
    show: false
  75.  
    },
  76.  
    axisLine: {//x轴线的颜色以及宽度
  77.  
    show: true,
  78.  
    lineStyle: {
  79.  
    color: "rgba(39, 166, 255, 0.5)",
  80.  
    type: "dashed",
  81.  
    width: 1
  82.  
    }
  83.  
    }
  84.  
    },
  85.  
    yAxis:
  86.  
    {
  87.  
    type: "category",
  88.  
    data: ['市区', '高邮市', '仪征市', '江都区', '宝应县'
  89.  
    ],
  90.  
    // name: '单位:kw·h ',
  91.  
    // inverse: true,
  92.  
    splitNumber: 5,
  93.  
    nameTextStyle: { // name的样式
  94.  
    color: "#6699C1",
  95.  
    align: 'left',
  96.  
    padding: [0, 0, 0, -25]
  97.  
    },
  98.  
     
  99.  
    axisTick: { // 取消刻度线上的小刻度
  100.  
    show: false
  101.  
    },
  102.  
    axisLine: { // 取消整个刻度线
  103.  
    show: false
  104.  
    },
  105.  
     
  106.  
    splitLine: {
  107.  
    lineStyle: {
  108.  
    color: "#27A6FF",
  109.  
    opacity: 0.3,
  110.  
    type: "dashed",
  111.  
    },
  112.  
    },
  113.  
    axisLabel: {
  114.  
    textStyle: {
  115.  
    color: "#A1D1EF",
  116.  
    },
  117.  
    },
  118.  
    },
  119.  
    series: [{
  120.  
    // 圆柱的顶部
  121.  
    // "name": "",
  122.  
    type: 'pictorialBar',
  123.  
    stack: '顶部',
  124.  
    symbolSize: [5, 12],
  125.  
    symbolOffset: [0, 0],
  126.  
    symbolPosition: 'end',
  127.  
    z: 12,
  128.  
    // "barWidth": "0",
  129.  
    "label": {
  130.  
    "normal": {
  131.  
    "show": false,
  132.  
    "position": "top",
  133.  
    // "formatter": "{c}%"
  134.  
    fontSize: 15,
  135.  
    fontWeight: 'bold',
  136.  
    color: '#34DCFF'
  137.  
    }
  138.  
    },
  139.  
    color: "#31fdfd",
  140.  
    data: y1
  141.  
    },
  142.  
    // 圆柱的底部
  143.  
    {
  144.  
    // name: '',
  145.  
    type: 'pictorialBar',
  146.  
    symbolSize: [5, 12],
  147.  
    stack: '底部',
  148.  
    symbolOffset: [0, 0],
  149.  
     
  150.  
    // "barWidth": "20",
  151.  
    z: 12,
  152.  
    "color": "#31fdfd",
  153.  
    "data": y1
  154.  
    },
  155.  
    // 圆柱子主体
  156.  
    {
  157.  
    type: 'bar',
  158.  
    name: '处理数',
  159.  
    //silent: true,
  160.  
    stack: 'a',
  161.  
    "barWidth": "12",
  162.  
    // barGap: '10%', // Make series be overlap
  163.  
    // barCateGoryGap: '10%',
  164.  
    itemStyle: {
  165.  
    normal: {
  166.  
    color: new echarts.graphic.LinearGradient(0, 0, 0, 0.7, [{
  167.  
    offset: 0,
  168.  
    color: "#25b5b5"
  169.  
    },
  170.  
    {
  171.  
    offset: 1,
  172.  
    color: "#25b5b5"
  173.  
    }
  174.  
    ]),
  175.  
    opacity: .8
  176.  
    },
  177.  
    },
  178.  
    data: y1
  179.  
    },
  180.  
     
  181.  
     
  182.  
    {
  183.  
    // 圆柱的顶部
  184.  
    // "name": "",
  185.  
    stack: '顶部',
  186.  
    type: 'pictorialBar',
  187.  
    symbolSize: [5, 12],
  188.  
    // symbolOffset: [0, 0],
  189.  
    symbolPosition: 'end',
  190.  
    z: 12,
  191.  
    // "barWidth": "0",
  192.  
    "label": {
  193.  
    "normal": {
  194.  
    "show": false,
  195.  
    "position": "top",
  196.  
    // "formatter": "{c}%"
  197.  
    fontSize: 15,
  198.  
    fontWeight: 'bold',
  199.  
    color: '#34DCFF'
  200.  
    }
  201.  
    },
  202.  
    color: "#50b6fd",
  203.  
    data: y12
  204.  
    },
  205.  
    // 圆柱的底部
  206.  
    // {
  207.  
    // name: '',
  208.  
    // stack: '底部',
  209.  
    // type: 'pictorialBar',
  210.  
    // symbolSize: [5, 12],
  211.  
    // symbolOffset: [0, 0],
  212.  
    // // "barWidth": "20",
  213.  
    // z: 13,
  214.  
    // "color": "pink",
  215.  
    // "data": [2, 23, 20, 40, 272]
  216.  
    // },
  217.  
     
  218.  
    {
  219.  
    type: 'bar',
  220.  
    name: '预警数',
  221.  
    //silent: true,
  222.  
    "barWidth": "12",
  223.  
    stack: 'a',
  224.  
    itemStyle: {
  225.  
    normal: {
  226.  
    color: new echarts.graphic.LinearGradient(0, 0, 0, 0.7, [{
  227.  
    offset: 0,
  228.  
    color: "#3c8ac0"
  229.  
    },
  230.  
    {
  231.  
    offset: 1,
  232.  
    color: "#3c8ac0"
  233.  
    }
  234.  
    ]),
  235.  
    opacity: .8
  236.  
    },
  237.  
    },
  238.  
    data: y2
  239.  
    },
  240.  
    ]
  241.  
     
  242.  
    }
  243.  
    }

案例九:(进度条渐变 自定义tooltip)

学新通

  1.  
    setCharts() {
  2.  
     
  3.  
    if (this.option.theme === "dark") {
  4.  
    this.chartOption = {
  5.  
    legend: {
  6.  
    itemHeight: 6,
  7.  
    itemWidth: 16,
  8.  
    x: "right", //居右显示
  9.  
    inactiveColor: "rgba(0,0,0,0.9)", // 图例关闭后的颜色
  10.  
    textStyle: {
  11.  
    fontSize: 14,
  12.  
    color: "#707793", // 图例的文字颜色
  13.  
    padding: [3, 0, 0, 0],
  14.  
    },
  15.  
    data: ["项目数量", "延迟完工", "提前完工", "在建"],
  16.  
    },
  17.  
    tooltip: {
  18.  
    trigger: "axis",
  19.  
    axisPointer: { // 鼠标移上去时,触发后的样式
  20.  
    type: "shadow"
  21.  
    },
  22.  
    padding: 0,
  23.  
    borderColor: "rgba(0, 0, 0, 0)",
  24.  
    borderWidth: 0,
  25.  
    formatter: function (obj) {
  26.  
     
  27.  
    var name = obj[0].name || obj[1].name || obj[2].name || obj[3].name;
  28.  
    var projectCount = obj.find(i => i.seriesName === "项目数量") ? obj.find(i => i.seriesName === "项目数量").value : "-";
  29.  
    var delayCount = obj.find(i => i.seriesName === "延迟完工") ? obj.find(i => i.seriesName === "延迟完工").value : "-";
  30.  
    var advanceCount = obj.find(i => i.seriesName === "提前完工") ? obj.find(i => i.seriesName === "提前完工").value : "-";
  31.  
    var constructionCount = obj.find(i => i.seriesName === "在建") ? obj.find(i => i.seriesName === "在建").value : "-";
  32.  
    // var number = obj[0].value;
  33.  
    // var rate = obj[1].value;
  34.  
    // const lineImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHxSURBVHgB7ZpPSwJBGId/O0YSBPkJwg51jPwCldcgqIunIKVTFNi9ix6iax66JRp0qosQdCnwT6cISoJOHdw61SUMglLRad6VrQjT0sl1aB4YWN1lmWf2fWdmd8aATSLiAdxhcD5tlV7EQB4cMSytJz/ IhKbXtRqaXHkhRqYKFf8WI6YdYH4RgHqVN7GBKv4XKLyQfEjCPXwoGqUmAiiMFTF5ZpiIikmoCqis2FQHC3gNFrAabSA0ygv0Ic2KQRW4B0cggzM5yeM7G jHdp ArIq3 m9/m8INSJzf2eFQzM8/W7MDY9BFlIF5k8OUCyXml5D4dKzAoXAqhB4aXqNp38AMpEqQOFBpZvoJP5M8uYKty2SmHJgcXQcspAqEL08bdkL9bQAjc7dRk/mnEYLNCN2fY5d0TP9JVKT2IZ6olDu0JobEdS9JiZnpc5gbaQ/AWp1X2rnvfIEHftSceucbKQJUKv7j/awdnbccEJXLL9a50ik1VjxG6QINGr178g/PlhvXzToyaDtHKBWpBK9yP2o4l JCAHKjfTMAjrBEJ/XORRGjwNOowWcRgs4jRZwGrHMamSgKgbyDNVqFqrCEWPoq26Blu3Vw6RNHwyhSBGM aGWRH2zB zdKja0b4LzsMiL3ly95zwjStaKGmp4wRu/9633ZSgvNQAAAABJRU5ErkJggg==";
  35.  
    const darkImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHJSURBVHgB7ZpPTsJAFMa/KQZd1sQDwM6ddmVcKTfQE4gngCtwAzmBeBJwZVyBiSbGDcVoogkLookJCNR5HRpMxIL1wTA6v6TJ9E a9715b/o6eQIR9cBFHwUE2A PZUSggQHK2BWV8SXiIsjAQVWOMjADH0PkpBBfCbgMmjDH AgfaXgp6f28nIc8zMPFO7qODJ0CTCWFPSHDJ4DBODAcK0A3VoBurADdGC9gBQlpbsniaRUs F0ge4VEJJ4BLuN/ 67/G0KTqL2qcIjDTQEH62CDVcDhHdAZxD TSS xAErsaQJoBjhhFeCuqGOR2CT TKUNtKYkMS2ZRxtgg1VA6UGuQr34ZyiJl1ZAcxsLxxZzurEC4ig/A2dtzJW5fHaoHjqWm5W1F3VOy tplreCjWCfAfK6dzM2nqCxdy3vPYEdNgHk9dwtUGzJeqj/9T7VSMV7JWRaxfoTWARM8vp3NN7U31fpESwk3hulypO umTILIZPgnKiuqnGSX8p7eaubqwA3VgBurECdPMHBAjUYC4NBwOcw1SGKIuwyaOHOkxsNdgRWQee6ISNE3TBHPyRzaNulQjqm1CtBxo2SGaA8pVCfg0noeMlH8Uifmj5AZoIAAAAAElFTkSuQmCC";
  36.  
     
  37.  
    return "<div style=\"display:flex;flex-direction:column;justify-content:space-between;min-width:160px;height:160px;background: #001737;border-radius: 4px;border: 1px solid #1991FF;box-shadow: inset 0px 0px 10px rgba(0, 201, 255, 0.6);padding:12px;\">"
  38.  
    "<div style='display:flex;align-items:center;height:24px;margin-bottom:12px'>" "<img width='24px' src="https://blog.csdn.net/qq_44603011/article/details/ darkImg " /> " "<span style='margin-left:8px;font-weight: 500;font-size: 16px;line-height: 22px;color: #fff;'>" name "</span></div>"
  39.  
    "<div style=display:flex;flex-direction:column;justify-content:space-between>"
  40.  
    "<div style='width:100%;height:45px;display:flex;justify-content:space-around'>"
  41.  
    "<div style='display:flex;flex-direction:column;justify-content:space-between;align-items:center'>"
  42.  
    "<span style='font-weight: 500;font-size: 20px;line-height: 24px;color: #00C9FF;'>" projectCount "项</span>"
  43.  
    "<span style='font-weight: 400;font-size: 12px;line-height: 17px;color: #728EB1;'>项目数量</span>"
  44.  
    "</div>"
  45.  
    "<div style='display:flex;flex-direction:column;justify-content:space-between;align-items:center'>"
  46.  
    "<span style='font-weight: 500;font-size: 20px;line-height: 24px;color: #00FFFE;'>" delayCount "项</span>"
  47.  
    "<span style='font-weight: 400;font-size: 12px;line-height: 17px;color: #728EB1;'>延迟完工</span>"
  48.  
    "</div>"
  49.  
    "</div>"
  50.  
    "<div style='width:100%;height:45px;display:flex;justify-content:space-around;margin-top:10px'>"
  51.  
    "<div style='display:flex;flex-direction:column;justify-content:space-between;align-items:center'>"
  52.  
    "<span style='font-weight: 500;font-size: 20px;line-height: 24px;color: #DA33DA;'>" advanceCount "项</span>"
  53.  
    "<span style='font-weight: 400;font-size: 12px;line-height: 17px;color: #728EB1;'>提前完工</span>"
  54.  
    "</div>"
  55.  
    "<div style='display:flex;flex-direction:column;justify-content:space-between;align-items:center'>"
  56.  
    "<span style='font-weight: 500;font-size: 20px;line-height: 24px;color: #FF8D50;'>" constructionCount "项</span>"
  57.  
    "<span style='font-weight: 400;font-size: 12px;line-height: 17px;color: #728EB1;'>在建</span>"
  58.  
    "</div>"
  59.  
    "</div>"
  60.  
    "</div>"
  61.  
    "</div>";
  62.  
    }
  63.  
    },
  64.  
    grid: {
  65.  
    left: "8%",
  66.  
    right: "2.5%",
  67.  
    bottom: "7%",
  68.  
    containLabel: false
  69.  
    },
  70.  
    xAxis: {
  71.  
    type: "category",
  72.  
    data: this.option.xValue,
  73.  
    splitLine: {//分割线配置
  74.  
    show: false
  75.  
    },
  76.  
    axisLabel: { // x轴线文字的样式
  77.  
    textStyle: {
  78.  
    color: "#7E9CC1",
  79.  
    fontSize: 12
  80.  
    },
  81.  
    },
  82.  
    axisTick: {
  83.  
    show: false
  84.  
    },
  85.  
    axisLine: {//x轴线的颜色以及宽度
  86.  
    show: true,
  87.  
    lineStyle: {
  88.  
    color: "rgba(0, 201, 255, 0.2)",
  89.  
    type: "solid",
  90.  
    width: 1
  91.  
    }
  92.  
    }
  93.  
    },
  94.  
    yAxis: [
  95.  
    {
  96.  
    type: "value",
  97.  
    name: "项目数量:个",
  98.  
    nameTextStyle: { // name的样式
  99.  
    color: "#707793",
  100.  
    fontSize: 14
  101.  
    },
  102.  
    splitLine: {//分割线配置
  103.  
    show: false,
  104.  
    },
  105.  
    axisTick: { // 取消刻度线上的小刻度
  106.  
    show: true
  107.  
    },
  108.  
    axisLine: { // 取消整个刻度线
  109.  
    show: true,
  110.  
    lineStyle: {
  111.  
    color: "rgba(0, 201, 255, 0.2)",
  112.  
    type: "solid",
  113.  
    width: 1
  114.  
    }
  115.  
    },
  116.  
    axisLabel: { // y轴的文字样式
  117.  
    textStyle: {
  118.  
    color: "#7E9CC1",
  119.  
    fontSize: 14
  120.  
    },
  121.  
    }
  122.  
    },
  123.  
    ],
  124.  
    series: [
  125.  
    {
  126.  
    name: "项目数量",
  127.  
    type: "bar",
  128.  
    color: "#009D85",
  129.  
    nameStyle: {
  130.  
    width: 100
  131.  
    },
  132.  
    barGap: 1, // 柱子之间的间距
  133.  
    yAxisIndex: 0, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  134.  
    barMinWidth: "4px", // 柱子的宽度
  135.  
    barWidth: 8,
  136.  
    itemStyle: {
  137.  
    normal: {
  138.  
    color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
  139.  
    {
  140.  
    offset: 0,
  141.  
    color: "rgba(0, 201, 255, 0)" // 0% 处的颜色
  142.  
    },
  143.  
    {
  144.  
    offset: 1,
  145.  
    color: "#00C9FF" // 100% 处的颜色
  146.  
    }
  147.  
    ], false),
  148.  
    barBorderRadius: [30, 30, 0, 0],
  149.  
    }
  150.  
    },
  151.  
     
  152.  
    data: this.option.yProjectCount
  153.  
    },
  154.  
    {
  155.  
    name: "延迟完工",
  156.  
    type: "bar",
  157.  
    nameStyle: {
  158.  
    width: 100
  159.  
    },
  160.  
    yAxisIndex: 0, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  161.  
    barMinWidth: "4px", // 柱子的宽度
  162.  
    barWidth: 8,
  163.  
    itemStyle: {
  164.  
    normal: {
  165.  
    color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
  166.  
    {
  167.  
    offset: 0,
  168.  
    color: "rgba(0, 255, 254, 0)" // 0% 处的颜色
  169.  
    },
  170.  
    {
  171.  
    offset: 1,
  172.  
    color: "#00FFFE" // 100% 处的颜色
  173.  
    }
  174.  
    ], false),
  175.  
    barBorderRadius: [30, 30, 0, 0],
  176.  
    }
  177.  
    },
  178.  
    data: this.option.yDelayCount
  179.  
    },
  180.  
    {
  181.  
    name: "提前完工",
  182.  
    type: "bar",
  183.  
    nameStyle: {
  184.  
    width: 100
  185.  
    },
  186.  
    yAxisIndex: 0, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  187.  
    barMinWidth: "4px", // 柱子的宽度
  188.  
    barWidth: 8,
  189.  
    itemStyle: {
  190.  
    normal: {
  191.  
    color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
  192.  
    {
  193.  
    offset: 0,
  194.  
    color: "rgba(218, 51, 218, 0) " // 0% 处的颜色
  195.  
    },
  196.  
    {
  197.  
    offset: 1,
  198.  
    color: "#DA33DA" // 100% 处的颜色
  199.  
    }
  200.  
    ], false),
  201.  
    barBorderRadius: [30, 30, 0, 0],
  202.  
    }
  203.  
    },
  204.  
    data: this.option.yAdvanceCount
  205.  
    },
  206.  
    {
  207.  
    name: "在建",
  208.  
    type: "bar",
  209.  
    color: "#009D85",
  210.  
    nameStyle: {
  211.  
    width: 100
  212.  
    },
  213.  
    yAxisIndex: 0, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  214.  
    barMinWidth: "4px", // 柱子的宽度
  215.  
    barWidth: 8,
  216.  
    itemStyle: {
  217.  
    normal: {
  218.  
    color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
  219.  
    {
  220.  
    offset: 0,
  221.  
    color: "rgba(255, 141, 80, 0) " // 0% 处的颜色
  222.  
    },
  223.  
    {
  224.  
    offset: 1,
  225.  
    color: "#FF8D50" // 100% 处的颜色
  226.  
    }
  227.  
    ], false),
  228.  
    barBorderRadius: [30, 30, 0, 0],
  229.  
    }
  230.  
    },
  231.  
    data: this.option.yConstructionCount
  232.  
    },
  233.  
     
  234.  
    ]
  235.  
    };
  236.  
    } else {
  237.  
    this.chartOption = {
  238.  
    legend: {
  239.  
    itemHeight: 6,
  240.  
    itemWidth: 16,
  241.  
    x: "right", //居右显示
  242.  
    inactiveColor: "rgba(0,0,0,0.3)", // 图例关闭后的颜色
  243.  
    textStyle: {
  244.  
    fontSize: 14,
  245.  
    color: "#707793", // 图例的文字颜色
  246.  
    padding: [3, 0, 0, 0],
  247.  
    },
  248.  
    data: ["项目数量", "延迟完工", "提前完工", "在建"],
  249.  
    },
  250.  
    tooltip: {
  251.  
    trigger: "axis",
  252.  
    axisPointer: { // 鼠标移上去时,触发后的样式
  253.  
    type: "shadow"
  254.  
    },
  255.  
    padding: 0,
  256.  
    borderColor: "rgba(0, 0, 0, 0)",
  257.  
    borderWidth: 0,
  258.  
    formatter: function (obj) {
  259.  
    var name = obj[0].name || obj[1].name || obj[2].name || obj[3].name;
  260.  
     
  261.  
    var projectCount = obj.find(i => i.seriesName === "项目数量") ? obj.find(i => i.seriesName === "项目数量").value : "-";
  262.  
    var delayCount = obj.find(i => i.seriesName === "延迟完工") ? obj.find(i => i.seriesName === "延迟完工").value : "-";
  263.  
    var advanceCount = obj.find(i => i.seriesName === "提前完工") ? obj.find(i => i.seriesName === "提前完工").value : "-";
  264.  
    var constructionCount = obj.find(i => i.seriesName === "在建") ? obj.find(i => i.seriesName === "在建").value : "-";
  265.  
    // var number = obj[0].value;
  266.  
    // var rate = obj[1].value;
  267.  
    const lineImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHxSURBVHgB7ZpPSwJBGId/O0YSBPkJwg51jPwCldcgqIunIKVTFNi9ix6iax66JRp0qosQdCnwT6cISoJOHdw61SUMglLRad6VrQjT0sl1aB4YWN1lmWf2fWdmd8aATSLiAdxhcD5tlV7EQB4cMSytJz/ IhKbXtRqaXHkhRqYKFf8WI6YdYH4RgHqVN7GBKv4XKLyQfEjCPXwoGqUmAiiMFTF5ZpiIikmoCqis2FQHC3gNFrAabSA0ygv0Ic2KQRW4B0cggzM5yeM7G jHdp ArIq3 m9/m8INSJzf2eFQzM8/W7MDY9BFlIF5k8OUCyXml5D4dKzAoXAqhB4aXqNp38AMpEqQOFBpZvoJP5M8uYKty2SmHJgcXQcspAqEL08bdkL9bQAjc7dRk/mnEYLNCN2fY5d0TP9JVKT2IZ6olDu0JobEdS9JiZnpc5gbaQ/AWp1X2rnvfIEHftSceucbKQJUKv7j/awdnbccEJXLL9a50ik1VjxG6QINGr178g/PlhvXzToyaDtHKBWpBK9yP2o4l JCAHKjfTMAjrBEJ/XORRGjwNOowWcRgs4jRZwGrHMamSgKgbyDNVqFqrCEWPoq26Blu3Vw6RNHwyhSBGM aGWRH2zB zdKja0b4LzsMiL3ly95zwjStaKGmp4wRu/9633ZSgvNQAAAABJRU5ErkJggg==";
  268.  
     
  269.  
    return "<div style=\"display:flex;flex-direction:column;justify-content:space-between;min-width:160px;height:160px;background: #FFFFFF;border-radius: 4px;border: 1px solid #FFFFFF;box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.08);padding:12px;\">"
  270.  
    "<div style='display:flex;align-items:center;height:24px;margin-bottom:12px'>" "<img width='24px' src="https://blog.csdn.net/qq_44603011/article/details/ lineImg " /> " "<span style='margin-left:8px;font-weight: 500;font-size: 16px;line-height: 22px;color: #313B5E;'>" name "</span></div>"
  271.  
    "<div style=display:flex;flex-direction:column;justify-content:space-between>"
  272.  
    "<div style='width:100%;height:45px;display:flex;justify-content:space-around'>"
  273.  
    "<div style='display:flex;flex-direction:column;justify-content:space-between;align-items:center'>"
  274.  
    "<span style='font-weight: 500;font-size: 20px;line-height: 24px;color: #009D85;'>" projectCount "项</span>"
  275.  
    "<span style='font-weight: 400;font-size: 12px;line-height: 17px;color: #728EB1;'>项目数量</span>"
  276.  
    "</div>"
  277.  
    "<div style='display:flex;flex-direction:column;justify-content:space-between;align-items:center'>"
  278.  
    "<span style='font-weight: 500;font-size: 20px;line-height: 24px;color: #0088FF;'>" delayCount "项</span>"
  279.  
    "<span style='font-weight: 400;font-size: 12px;line-height: 17px;color: #728EB1;'>延迟完工</span>"
  280.  
    "</div>"
  281.  
    "</div>"
  282.  
    "<div style='width:100%;height:45px;display:flex;justify-content:space-around;margin-top:10px'>"
  283.  
    "<div style='display:flex;flex-direction:column;justify-content:space-between;align-items:center'>"
  284.  
    "<span style='font-weight: 500;font-size: 20px;line-height: 24px;color: #DA33DA;'>" advanceCount "项</span>"
  285.  
    "<span style='font-weight: 400;font-size: 12px;line-height: 17px;color: #728EB1;'>提前完工</span>"
  286.  
    "</div>"
  287.  
    "<div style='display:flex;flex-direction:column;justify-content:space-between;align-items:center'>"
  288.  
    "<span style='font-weight: 500;font-size: 20px;line-height: 24px;color: #FF8D50;'>" constructionCount "项</span>"
  289.  
    "<span style='font-weight: 400;font-size: 12px;line-height: 17px;color: #728EB1;'>在建</span>"
  290.  
    "</div>"
  291.  
    "</div>"
  292.  
    "</div>"
  293.  
    "</div>";
  294.  
    }
  295.  
    },
  296.  
    grid: {
  297.  
    left: "8%",
  298.  
    right: "2.5%",
  299.  
    bottom: "7%",
  300.  
    containLabel: false
  301.  
    },
  302.  
    xAxis: {
  303.  
    type: "category",
  304.  
    data: this.option.xValue,
  305.  
    splitLine: {//分割线配置
  306.  
    show: false
  307.  
    },
  308.  
    axisLabel: { // x轴线文字的样式
  309.  
    textStyle: {
  310.  
    color: "#707793",
  311.  
    fontSize: 12
  312.  
    },
  313.  
    },
  314.  
    axisTick: {
  315.  
    show: false
  316.  
    },
  317.  
    axisLine: {//x轴线的颜色以及宽度
  318.  
    show: true,
  319.  
    lineStyle: {
  320.  
    color: "rgba(0, 112, 107, 0.2)",
  321.  
    type: "solid",
  322.  
    width: 1
  323.  
    }
  324.  
    }
  325.  
    },
  326.  
    yAxis: [
  327.  
    {
  328.  
    type: "value",
  329.  
    name: "项目数量:个",
  330.  
    nameTextStyle: { // name的样式
  331.  
    color: "#707793",
  332.  
    fontSize: 14
  333.  
    },
  334.  
    splitLine: {//分割线配置
  335.  
    show: false,
  336.  
    },
  337.  
    axisTick: { // 取消刻度线上的小刻度
  338.  
    show: true
  339.  
    },
  340.  
    axisLine: { // 取消整个刻度线
  341.  
    show: true,
  342.  
    lineStyle: {
  343.  
    color: "rgba(0, 112, 107, 0.2)",
  344.  
    type: "solid",
  345.  
    width: 1
  346.  
    }
  347.  
    },
  348.  
    axisLabel: { // y轴的文字样式
  349.  
    textStyle: {
  350.  
    color: "#707793",
  351.  
    fontSize: 14
  352.  
    },
  353.  
    }
  354.  
    },
  355.  
    ],
  356.  
    series: [
  357.  
    {
  358.  
    name: "项目数量",
  359.  
    type: "bar",
  360.  
    color: "#009D85",
  361.  
    nameStyle: {
  362.  
    width: 100
  363.  
    },
  364.  
    barGap: 1, // 柱子之间的间距
  365.  
    yAxisIndex: 0, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  366.  
    barMinWidth: "4px", // 柱子的宽度
  367.  
    barWidth: 8,
  368.  
    itemStyle: {
  369.  
    normal: {
  370.  
    color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
  371.  
    {
  372.  
    offset: 0,
  373.  
    color: "rgba(0, 157, 133, 0)" // 0% 处的颜色
  374.  
    },
  375.  
    {
  376.  
    offset: 1,
  377.  
    color: "#009d85" // 100% 处的颜色
  378.  
    }
  379.  
    ], false),
  380.  
    barBorderRadius: [30, 30, 0, 0],
  381.  
    }
  382.  
    },
  383.  
     
  384.  
    data: this.option.yProjectCount
  385.  
    },
  386.  
    {
  387.  
    name: "延迟完工",
  388.  
    type: "bar",
  389.  
    nameStyle: {
  390.  
    width: 100
  391.  
    },
  392.  
    yAxisIndex: 0, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  393.  
    barMinWidth: "4px", // 柱子的宽度
  394.  
    barWidth: 8,
  395.  
    itemStyle: {
  396.  
    normal: {
  397.  
    color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
  398.  
    {
  399.  
    offset: 0,
  400.  
    color: "rgba(0, 136, 255, 0)" // 0% 处的颜色
  401.  
    },
  402.  
    {
  403.  
    offset: 1,
  404.  
    color: "#0088FF" // 100% 处的颜色
  405.  
    }
  406.  
    ], false),
  407.  
    barBorderRadius: [30, 30, 0, 0],
  408.  
    }
  409.  
    },
  410.  
    data: this.option.yDelayCount
  411.  
    },
  412.  
    {
  413.  
    name: "提前完工",
  414.  
    type: "bar",
  415.  
    nameStyle: {
  416.  
    width: 100
  417.  
    },
  418.  
    yAxisIndex: 0, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  419.  
    barMinWidth: "4px", // 柱子的宽度
  420.  
    barWidth: 8,
  421.  
    itemStyle: {
  422.  
    normal: {
  423.  
    color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
  424.  
    {
  425.  
    offset: 0,
  426.  
    color: "rgba(218, 51, 218, 0) " // 0% 处的颜色
  427.  
    },
  428.  
    {
  429.  
    offset: 1,
  430.  
    color: "#DA33DA" // 100% 处的颜色
  431.  
    }
  432.  
    ], false),
  433.  
    barBorderRadius: [30, 30, 0, 0],
  434.  
    }
  435.  
    },
  436.  
    data: this.option.yAdvanceCount
  437.  
    },
  438.  
    {
  439.  
    name: "在建",
  440.  
    type: "bar",
  441.  
    color: "#009D85",
  442.  
    nameStyle: {
  443.  
    width: 100
  444.  
    },
  445.  
    yAxisIndex: 0, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  446.  
    barMinWidth: "4px", // 柱子的宽度
  447.  
    barWidth: 8,
  448.  
    itemStyle: {
  449.  
    normal: {
  450.  
    color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
  451.  
    {
  452.  
    offset: 0,
  453.  
    color: "rgba(255, 141, 80, 0) " // 0% 处的颜色
  454.  
    },
  455.  
    {
  456.  
    offset: 1,
  457.  
    color: "#FF8D50" // 100% 处的颜色
  458.  
    }
  459.  
    ], false),
  460.  
    barBorderRadius: [30, 30, 0, 0],
  461.  
    }
  462.  
    },
  463.  
    data: this.option.yConstructionCount
  464.  
    },
  465.  
     
  466.  
    ]
  467.  
    };
  468.  
     
  469.  
    }
  470.  
    }

案例十(自定义折线图转折点)

学新通

  1.  
    setCharts() {
  2.  
     
  3.  
    const data1 = JSON.parse(JSON.stringify(this.option.yData1))
  4.  
    const data2 = JSON.parse(JSON.stringify(this.option.yData2))
  5.  
    const maxData1 = (data1.sort((a, b) => Number(b) - Number(a)))[0]
  6.  
    const maxData2 = (data2.sort((a, b) => Number(b) - Number(a)))[0]
  7.  
     
  8.  
    const maxNum = Number(maxData1) > Number(maxData2) ? maxData1 : maxData2
  9.  
    // 获取最大值:目的是实现折线图下面的 柱形
  10.  
    const newArr = []
  11.  
    for (var i = 0; i < 12; i ) {
  12.  
    newArr.push(maxNum)
  13.  
    }
  14.  
     
  15.  
     
  16.  
    const blueDot = 'image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAASHSURBVHgBjVVLbBtFGP5mvLbXTtK6SEjJASkg0QZObTm1hzZFPVCCBBS10PaAQtVzAhxBinPghkiOVSkEoaTlpdBKlHJAJEGQY9MTfXDAF5SAELhJbK 96x2 f2Y3yrPqSL9nPDvzf//zG4WHjN4JU8r5GFIG/fI3EcCgCoXbiHFdhbh2d1BVdtKhttvsmzC9Jo8JLvs3HzTbnDcKn kAo9sBbQHY94UZQhtlpVCKgxWs3PoeQeUWwqXfEf63aCFyPXvh7e5B8dkj6DowkIJWKaP3zqrxHQH6rpqyMRihctTvzOGf6Q8QB6vQSm28QY2xcWq9Ug9Kx95CZwJEb8r3z6jRLQDW8hjjsvHvD NYmf8KWmsorSyASkBkNnFslQmIiQ3nmCDnrcQO9 3UE5XGXOWwQPRSdeYylmcnoDMaGZ0I1xbMghCACmNqarfbTggUt2N0HjqNx04M8TuqPHrg7hlV0RbPx0hM5bWFG3gw ymt1vAyGWSzHvL5HHzfR8HPo1goUPJc /C5L99yuZw9K0aszH Jxp2fxeoSQSasB0nF/CF//vzoJMzy3zycQY7KreRESRZZj0p0hqGh5bQ DENKhNa6OYoixNkinnh3GsrvQrOJPdpk8YooX6X17QdLNuZijed5VrFYmlrfUSygs6OIjoKPIr3IC3g2aw2SEIqYZo2Vd8MGhp HPWi8LJGt/zZn4ysJtQAUAchbAB8Xzr6K0y8dtxdv/jSPscuTdi0JdrnI2FnuB5UF7Dr8BnOGox493s/kIqou2YxLIrVyHmQpeVr4zoVzODVwfK1STxFopVbHxclvEDIsrUzoqk1LSttoLt5Pj/ayNFCSVYuNJEWiEi9c1dBtun/i2GFsHuKNl1aZnJPLxtVlu7q4DmDTkCSm3aGwA5esG8pZ5bpZbT0vABXZ9ErdzgBekAaK2UxtSsS4fv3dj1sU35z5FVHyXXpCit92MkWoJBlVTwC42ZvrfhrB8l9WsTSNJCyK2rb8Ll351lZPGioBvDQ1jVbLlaZNcuy6WhhE6CMZtz1uzNHofv/J59C494uznpUR8lKGyrVW1u0PL36OsY nbAjFAAFutlqcIybadbTcE4SOZ46kANc1z1jO6Do4AJXvtDwjlke8KAqCZgv1RhO1eoNS5zpAjVIPmggsQNJgsVOeYag7SHwuP7imK4NKaHZW Z14/LX3bTwND0psxTIBabAlRelqnVITkAYa/N8MWi5MNkSOn0rPn3eEyzdijYuINMhFtUjXug69TnedF6ENQ4iA1taDIFEs3gTWMwEPkxyIB7uFtvcPWLKjvtGksNzYd8UMcxqTDWFUIb0N/aATuk4qRRQaW20uZ7vIpHteGE4fn410nY6 KVPmzoishZuqM5/YDrf1nLwJJlVhK9PAhvbkeyj0HXVlbvh0nlPlVOfWJ3OSnmi akK5CVCdFBzxuWwJBRBEeibXvRf Uwf5kr0ITebEozyZa55cNb00p0yAN/EIg0pm TMoSd3m285DgEybdE7GFVJMeYujIsJwzLGQxpNK3Hb8D6czZp83fPTeAAAAAElFTkSuQmCC'
  17.  
    const yellowDot = 'image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAShSURBVHgBjVVbaFxVFF3n3Mc8EupUFCRCOj7AgFgV/eqHRigl0prGj/qhFulHERRpLBa0Ck3wCQY7P4XaCi229UfRtE1JFdE0oPilNX60BYuTKFXRkmvNzNy5r Pe55yJYyYJXthzz517z15r7732PgKrXGq4vwS3exct yFUGUqU7auA7Dx9cRJJOi4qZ6sr RDLOx4ow3WPaMf/ VQt70Wpo0jT0eWAOgDUnsFdUNkIhCgFUYZjsyGm/4zxw7UE1VqmQdZf52Jd0cFgTw7b1 UZwEalRsXYmcqKAOqFLSN020fOcepKE09/u4AgVpBCdASSGacEJPFyX7EdaESMTYx2AFjmFXa Z6aGA5cbkFJCSKEBhAXhu8oynSwGUZmie4a9BPIKmQFRz7ciEf/m3PuOnkqvXajhzUshpCPhSGu01mAahADIYUaO0zQ1Rk6zNMMzt bw9vpu9hjAce8Vb41XpablOPvozxLn 41LDWIt4ToOPM9FLucjn8 jkM hWCiQ5WidR57 53e 7 tvmcSByyFO/9rkFJaQJEd0BFYxP/FD32fz CVkPAc OdfmsxMPnktOpEN7iTmxj OYLEHUdk SBN1S4eLA9Si5FG2ysJaoekPs/NhciLlGpnPObFzX1Y6ZaYt9V7GA7q4iugp5FCmKHIN7nibEKWT7KyFf1dAU1u0edimerZzXU1cinV8uqAYgY4CcBshj5 OP4rEtG/W yS xv73jus1F9jUwtF33j99NcZztxf49YMuRXwPJQqztVRXnAsphYnAI8sRw907n8C2zRsXlbqNgP6u1XHw EeIKS2RExu1SS5piu/nE6tRUZasHF7PXEtZofRoojCqobAp/Icf2oClF0fjtlTG3/FmZXQ510it9lVZLt3IRWx1h8AKs6TtEoaVGSKi83uiqaq84I5UdgM3UEbNlJIllNcPJz7vcDz55VdI7HvuCW4w3WJkd9MosVdANRAMUL6L/vz591g75qbhgiVJquV36INPtHpaqWLAQyc RhQZaeoiZ6aruZF7i4uJOc9Q58j6 2/wcea32LAnZcS0ySHnUgod9tjB97H/8AmdQibAwM0oontChTYdzfsYYbAn30r4SWq0IZr5yXwQU6N9ehULmbCN5plOtlrXjUbSZSWkBKDVQyAcBVtsI7k5B1zctNb4T5JbpKiM8 ExVfKAw/et0flUxIJzy8yYZaPZRK0RYqFORvKsNxpo0HMzjEyadIrMfOLJahV0lM8HaZF2ELXgkR4fz95W0Aw5/7FOQ4wwbKIehtYxgRFQ2Iw0eIs5125vXwHbe3lsi4APIHbt8M/oNz8GIxvu4Ck1sOkmXyth o9IR8LGBcysYlLLVheXlZYatTGxV /sMjoS6iXxzuRZq9y2Hmg7cHiyvn6hjtlGZvRszwTVOja1MhVYke/evwaDRMx2A51qEyOLfYIll9q9eZiko8c3P/MQPE1zqlpPMRMkusjcM6z1B2708WSvj5LHmaa0IFv9yFwEeXGoTMmlcxlP4f9dUzS8dvABs/TFqpPAnBUOjXOx1QxFM7d095sGPUczvyIqU8FKPv4BCldzp6WB71UAAAAASUVORK5CYII='
  18.  
    this.chartOption = {
  19.  
    legend: {
  20.  
    orient: 'vertical',// 竖直排列
  21.  
    itemHeight: 6, // 图例的高度
  22.  
    itemWidth: 16, // 图例的宽度
  23.  
    x: "right", //居右显示
  24.  
    inactiveColor: "rgba(0,0,0,0.3)",// 图例关闭后的颜色
  25.  
    textStyle: {
  26.  
    fontSize: 12,
  27.  
    color: "#A1D1EF", // 图例的文字颜色
  28.  
    padding: [0, 0, 0, 0],
  29.  
    },
  30.  
    top: '0%',
  31.  
    selectedMode: false,
  32.  
    data: this.option.leged,
  33.  
    icon: "stack", // 将折线的图例改成矩形
  34.  
    },
  35.  
    tooltip: {
  36.  
    trigger: "axis",
  37.  
    axisPointer: { // 鼠标移上去时,触发后的样式
  38.  
    type: "shadow"
  39.  
    },
  40.  
    formatter: function (e) {
  41.  
    const arr = e.filter(i => i.componentSubType == 'line')
  42.  
    if (arr.length === 2) {
  43.  
    var str =
  44.  
    arr[0].axisValue
  45.  
    "<br>"
  46.  
    "<span style='display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:"
  47.  
    arr[0].color
  48.  
    ";'></span>"
  49.  
    ""
  50.  
    arr[0].seriesName
  51.  
    " : "
  52.  
    arr[0].value
  53.  
    "<br>"
  54.  
    "<span style='display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:"
  55.  
    arr[1].color
  56.  
    ";'></span>"
  57.  
    ""
  58.  
    arr[1].seriesName
  59.  
    " : "
  60.  
    arr[1].value;
  61.  
    return str;
  62.  
    }
  63.  
    if (arr.length === 1) {
  64.  
    var stt =
  65.  
    arr[0].axisValue
  66.  
    "<br>"
  67.  
    "<span style='display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:"
  68.  
    arr[0].color
  69.  
    ";'></span>"
  70.  
    ""
  71.  
    arr[0].seriesName
  72.  
    " : "
  73.  
    arr[0].value;
  74.  
    return stt;
  75.  
    }
  76.  
    }
  77.  
    },
  78.  
    grid: {
  79.  
    left: "0%",
  80.  
    right: "0%",
  81.  
    bottom: "3%",
  82.  
    top: '35%',
  83.  
    containLabel: true
  84.  
    },
  85.  
    xAxis: {
  86.  
    type: "category",
  87.  
    // data: yearList,
  88.  
    data: this.option.xData,
  89.  
    splitLine: {//分割线配置
  90.  
    show: false
  91.  
    },
  92.  
    axisLabel: { // x轴线文字的样式
  93.  
    interval: 0,
  94.  
    textStyle: {
  95.  
    color: "#A1D1EF",
  96.  
    fontSize: 12
  97.  
    },
  98.  
    },
  99.  
    axisTick: {
  100.  
    show: false
  101.  
    },
  102.  
    axisLine: {//x轴线的颜色以及宽度
  103.  
    show: false,
  104.  
    lineStyle: {
  105.  
    color: "rgba(39, 166, 255, 0.5)",
  106.  
    type: "solid",
  107.  
    width: 1
  108.  
    }
  109.  
    }
  110.  
    },
  111.  
    yAxis: [
  112.  
    {
  113.  
    type: "value",
  114.  
    name: this.option.unit,
  115.  
    // splitNumber:5 , // y轴坐标刻度分隔
  116.  
    nameTextStyle: { // name的样式
  117.  
    color: "#6699C1",
  118.  
    align: 'left',
  119.  
    padding: [0, 0, 0, -25]
  120.  
    },
  121.  
     
  122.  
    axisTick: { // 取消刻度线上的小刻度
  123.  
    show: false
  124.  
    },
  125.  
    axisLine: { // 取消整个刻度线
  126.  
    show: false
  127.  
    },
  128.  
     
  129.  
    splitLine: {
  130.  
    show: false,
  131.  
    lineStyle: {
  132.  
    color: "#27A6FF",
  133.  
    opacity: 0.3,
  134.  
    type: "dashed",
  135.  
    },
  136.  
    },
  137.  
    axisLabel: {
  138.  
    textStyle: {
  139.  
    color: "#A1D1EF",
  140.  
    },
  141.  
    },
  142.  
    },
  143.  
     
  144.  
    ],
  145.  
    series: [
  146.  
    {
  147.  
    type: "line",
  148.  
    name: this.option.leged[0],
  149.  
    smooth: false, // 平滑的折线
  150.  
     
  151.  
    showAllSymbol: true, //显示所有图形。
  152.  
    symbol: yellowDot,
  153.  
    symbolSize: 12, //标记的大小
  154.  
    itemStyle: {
  155.  
    normal: {
  156.  
    color: "#ff744c", //改变折线点的颜色
  157.  
    lineStyle: {
  158.  
    color: "#ff744c", //改变折线颜色
  159.  
    type: "solid"
  160.  
    }
  161.  
    }
  162.  
    },
  163.  
     
  164.  
    toolbox: {
  165.  
    show: false,
  166.  
    },
  167.  
    data: this.option.yData1,
  168.  
    },
  169.  
    {
  170.  
    type: "line",
  171.  
    name: this.option.leged[1],
  172.  
    smooth: false, // 平滑的折线
  173.  
    showAllSymbol: true, //显示所有图形。
  174.  
    symbol: blueDot,
  175.  
    symbolSize: 12, //标记的大小
  176.  
    itemStyle: {
  177.  
    normal: {
  178.  
    color: "#27A6FF", //改变折线点的颜色
  179.  
    lineStyle: {
  180.  
    color: "#27A6FF", //改变折线颜色
  181.  
    type: "solid"
  182.  
    }
  183.  
    }
  184.  
    },
  185.  
     
  186.  
    toolbox: {
  187.  
    show: false,
  188.  
    },
  189.  
    data: this.option.yData2,
  190.  
    },
  191.  
    {
  192.  
    name: '柱子',
  193.  
    type: 'bar',
  194.  
    barGap: '-100%',
  195.  
    barWidth: 28,
  196.  
    label: {
  197.  
    normal: {
  198.  
    color: '#00f3fb'
  199.  
    }
  200.  
    },
  201.  
    itemStyle: {
  202.  
    normal: {
  203.  
     
  204.  
    color: '#05243c',
  205.  
    }
  206.  
    },
  207.  
    z: -12,
  208.  
    data: newArr
  209.  
    }
  210.  
     
  211.  
     
  212.  
    ],
  213.  
    };
  214.  
    }

 案例十一(自定义柱状图顶部的圆形)

学新通

  1.  
    setCharts() {
  2.  
    const yellowDot = 'image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA7VSURBVHgB7VlLbBzJef6qumd6XhyKL4mitQtFXskbcoXEcZJDEiA87MVINkAO1CGxDzGQHDY5xqccOLwECJKckviwcAzk4YsEBEFySGCvYRq2YdjY9cKght6VV4/d1ZKUhg8NyXl2V5W/quoeDl8S/QIMw0U0u6e6u p//9//N/DL8Qs2jDHCnQGRHdlv3vTzfCab/0mHxI8xhokaHCYlVjg6 R OWtTsvHGT6SxP9lHH7bH18COOMzMwLFnhtxaOQJM sFQTw9emVkvXrvGZJeEVwDWye5axJSEts/a9oxo6I1ln53iwqCXfUSpS4vlviQTW6wJzcwazswK3bsFd27mFBbjfdtjr1VVzsGotO5lTiDtx/sgzZyDekm0sC0IMiAaJvjFEYHaem Oay8DaNYE7dwympgzmGkP7zIOMGfecPdtxk8yiZnXh9eSldCYmns6AVakQB/Zbqx08X OxUPe/MwLX9gQ 8Ql/f/0bAmtFg5d R2J7g5rh3Ov3jLv/5pvAzhWNBt9bntdeEfy36C1zmCpxmJ9jQz6TeLdKavWzjmD/zk1rMg1rNgEwJVF/LPHSeYnXSfh6P0CV8zMjAe5vSDQfBvj6WwIR79t7lqk5BJjne6BQfp9r1heo0Rt bZNK3jzbsU 8OTCZ7L61cSxS9Tf875fHJChEzOxQyrco5U9KRM8FeHvFYPS6wH5HoNLls1PA/rtc5oJf2J0eAVGQ IkX4LSDhnY/Z181A/ xo1Yzz9KCfKr03UtL/s3F1BadjafEj 9TqiT /hOJ7 1IVK/k0N4I0NukVuIQT1ZDtHJ5TKg8gm6I9zU10hd4eDGP91WI765wrbJ0pjc7L7H6Oe9TnvqB9Q8s4UwaSENZFrNdeKwP2bp1zpci6TYfmxIImhK9qQDlJwG6LYO9nsS5y9RIi3NlYOOhRjQpoDYo9SowegnovKewlyinofMdjSp9JZzWuN3TmKHj16mJuVW7p3ZaSIPeSQ59qgn5i5qPNBnxF0m8dcCIRE 8GOBxUeJqOcR7D4A2Qsi xMg5iVxBIFcM0NnTiLVAKyZhYwI7bYWxLpnsa TKCqakYUj0kw8VylcMfoVMbE8YR/jsrMECQ 6S1X7NeYNj4IgyxImEp5rwtg/vvK/T7qMPvMk9PxniOx8IfORciHgvgMxLmFwOpVCiSyaqYwE2GwaFQEKRgQIlH/RIcKJRyGt82IxxaVygsR1j6jnOk8E3mwl c19ji9rY D9qKzUle1qlT9QWvWEc0cLTMnFqOsvSEW8lP3FB4LfmQjRyEmNhAEWiQ/4VixEqMg8ZFFCQRXR2IuREiXdKiPi7tZVHGBXR5XVbR5gcKXL9PEyUQ6 Vw/ojht/REG/seXrmaoGLUresM1sOapZ0c0zIRxkYcOdsf8k77DKvd iw1xkSyyrAza9SjdxopJBDZ5tayeegY143I/S6EUISmQvLqEYVLlRGrjSCSmWEhBaphQKkKqDD5560Q1QK1GBTYCQhE3Tu2V8LEDIg4AEdmzljgSY8ZX2hNmTW5oiUh03IwoXMxhbI3C2 N8/ocJ32vMGFx7jJFUaaLqVjJWiPFomP9ynNMIdzEyXsNTvUBL0z XcufzHd5l2az2eB8EMUSgH6e13s9voYK/fR7/ZQHY15L0EnibFzL3b MFompZc1rUBlYVUsLmobkYbNKDzMTkr8zQWGNDptgwxaBqp1Om0g0JYBJSdJYA5JGKK9H0AEEW28gEBPorP/51zjA8a9L0Kaz0CKdajEIMi9CB3U6ZufQm//RQTFL2DMPOY6EvmcRpORKKBjq9EAF1802O3H2HpkMPEda0/IcNZJ4fRkH1hIE8k8j61v8yWGvrV1oBhbhwzQavFNTebzJF5QE/1JJOpfoGliUP/N34yfQQgVXIHOXYUSfEHMkOCv8NyB6v8z702h3QvR5RoRtTdW4br3CDveBTZtlKO/WeKtGTuQWPc4/YgNBcM/at6EBL7GH3XumTySCMuM9UxSlUshCgWGRjqdLNHuuzkIm6AKRRj1l3zjPqT8R2p3nBp4nvs8B8u5NBcg9Cjni9AmhpHLnPsYr38dOfVtxH2FvlYMCNrmf4xP81EGoVhofO WXYHEt3wkmp93rgkXW0/zATssJrGcr60JFzpXCA2u0Naffz5Cqxmix4hTzhXovEVumofCH1L6X H1CI/L3JKiwys8zqe chdCfpkmdJvHe9DJLkTuj5GYfwMTNTXSRiK7qORjNJt9yP0YvSTBzHWN8RGDr2946DF3y4ga9Ikm5Lx8yRceA0jsAA/HH QDTM1I7O0x8zPW5/ICezHtl37QiS/Sfv DErXvWoJ/lcdnnPQ98XZ8FEb/GZ Zdc8E1GQU0E/kBGJKt5/Qr3gktIjquERpRKBKc8UDJk0mOm9GwsMZc7IPOM 2GW9pCDJb1BhWJBoF6ey/z5DX7xm02jQ1RQiRBAyZ/4B HEmsgoUzUfjk3wzwvER0an/iOdxJP0izWacfvSfKEd5t1ZhhD7FRLe/QWIIVbYJR3BN4jUKcXnZr7BkcZ04VLEddmI7vbhoXKFh37Hc7zCj7u SbSavqEjCebYZthTSNwL7xlUmrTuUnc0BZa5xBacNQ5MSgs8w4XVjwlI5TVvnWnTg/aZCtZT65KiNuAoP7mi8ckXg2rUUF6XiHwpGh00ogw NtEBZ3/HnChd51DaoMLiEo4xEnOvzUMovGMfDZPZw sjTjDT9hTCj6MO5vQ6kX2d3SzkhdblXZ8KDxTqjb2bKwwXVUQYOcfbqq74UtNlwhNgE7xDL5wy2CMTiTYUCoUXFOp9L7xsQ4TSZJ0u6zd N06iniO5xxzY1x2fjqy7BSRLf62pMng9QmiD7HTJXYnZ 6IkZK/oqzuaCxbQ GHKEAx8w5qCIsIW31cIdRgAbj1fvKXfv4rRFnYTDzKIJLDhLEAafJkFbNCF6OLbJyP cooUe7/0/TLDDYw9J8hZ3/yxJYYRR2gG7JzsGmmCv2QRKl3iH4G6G2l8nxHbY7mkayMpGOyy3jLnO9h7w98wMExr94e6aR5RhTqCnieNL/K0aNKU/oYNSOyy3jFjlYv/Kte4NCId5yOMLnP8 CX7kZoPoU4TaD5kXGHsKlDrtskQTteZTJcz JqH4BMP3sq3WSIttbCzVIMThMHQcTg9gNFGorXXRkLjISLRGtLjbDxEkIaIoYkQi/iFwKxJlduK/pgpp38nfQuTpqIrFo7QJjUmOESPQLSf5WD3ic49o83/FzUp0pL9DVO6ho7oolaihdp8 0Xd1Qv9hn8WP17xl4lWa9MItfbSwOYxGs9pzNi1i1saYGa8bfOs2Vfyhxihxe4Ugs7WTQNJzdb6PVp Jx7zmkpcISViyR0d9F0qu0jJuM4GtcMe3EZq7CMwe4cTf8NnfZUz5PEZHNHpxQsidIGax02NGLljfeyfxaaTuibf uHDTJ7CnotEBZOVxY8FnYxDI2dp3OwhgqIUeS8cWcVAY5BFVIyaiAnKGITScYEL6C2hdh4q/SPz/cRJ7x0Uqoywq3eTxpzS1S4RJn2dY3kJrv8OM3qc5dWC2E5hqgv1STIbIzGaC3mP6wCu QnMuUDNHC5pjTuGYsPXDLNscqymcsAV8lW769j2B5CMBXjiXxzpNK 7lMTldgiI 6qkcypUC2i2GScxQ4n/Pxa6mq65Di08z2zaYkVm5UfJ7zS4EiY07bdbECnmWmIgSrK0QYvP b1Dz2ysKdSv9BQtv9CEreSoDnltfkY0xZNpeVX4mwHvLtnklEXwswrkOM/RuiAuMp6KQR5ulpSETYTUHRY1ZmJHlBxZuzNIKHU3p8mwETZDYX 31MTmVYLNHkFfUyNOE7jcSTJ/TxF/Kd/UchNBC1HRG27AWTmZguOfph/TY6HKI5juMQFFADC9xnjVxx3gmdnaZqUcjVwMrJRAKVle8DpixDSNWn6FSRortFYU2GRhjuBTsDzXprC1KP2Ke2ViJMfeCcXXxBBmwW84va9 1o/mIZ3QlBlFoMNL p2sdsrAZ3xL4AfG6LftyUySeoCvcJMxmoZN0AkYZEk9YUCLUEPnQMdNpe/uNQjJB6YcBE9e Qo5nGcbIK4UGo844k1mF0Dojvu6kbxzxHucPNehPYWDAxOCH8a1oB6/TtoqDF7R/VvEoMns XKeUCb5sd6IYeCYEEWs EiiOSHQ6cMS2NthCodQ7TxQmbHJqxLhwzaC4o5jx9UFbZeWAeNvptq0VnN5WOV6RZRqwPuA RCylFRHhhc2INrRaKW1Rcm98KcFEhW2SJwkq47yejJ1UA9p0EMV4//0edgkxdvcZaVj3lhhlSiOsfVPi1QOGS5aTM3RaS/x/rahDtLhW/OIBhD6hQXdyY2v4W4BLbK41PahN4WppxugsvNphS85zjFBimp05mtD9H2inGWvbFtvY3k R1d3d75L4ab RGtW eGfkukjBXJsxrAb1YB LjK0f1o5joNM1gPQTUMatEGlftOZ/ yTnN7z9HO27mKB61TgpfnRa4R7D4NZdgrWdGKIVo0/tJJt9VlYab/BeMK6crffowKPEU2t55UCj1e7n6p5oRzwySziV HT 9DGc2PyHBxwuOZ3k/9e3zScqxkHfud WePCAAesyXEWVjSah8Shri3GLbtOutDVH2wu15rmwoJ2mbf65wazre1PCMjT4pnbCeOo3Msu1yLzHdavhzcmZ0bL/0vIyP1T8E1uBNuWP/Z5xEr085WvZ mPfKqwtJ3iLdr/M823O2ULJPv/yjnbEO1sX7gOHuHFTueuUeDxjCJxhDMJrZlZZ1zobw9/CsmLIV1G2q6ddMrTDSXvKtwtX0 5zZudpAzfbQ5zh 5gdZ/pKmYUvd3ZOXfMb1hazbwbeBOzZJh6bQWdeU4ThasCEvbbEW1jsP/Q54l3P064lDhLnoDY5G21nH8P9yYwpdynSBr7z9SUxcHg7apy02MrN1XxASB/15yMh0kEd8bNh4BhDrtmXdo3T6 Fs7oLw0pLXsvtQ4U1EZN ZU4I9/Wcn qfGwGnDHFl38In28MY/FsG/HD9v44fDvEcVZwK9CAAAAABJRU5ErkJggg=='
  3.  
    const blueDot = 'image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAkzSURBVHgBlVdJbJ5HGX5m5tv zfsSJ24CbmiDTaqWIJCQEInogR5AHLA5pAckpFZyuSN6IPWFwh0hBQkuNAdskBAgCqIi5gBSpEZBTeImaWqliZM4drz927fP9Jnvt7M1S/tJo2 bmXd73ud9B/gM1xtvGGnH5KxRxhjx4LD/8Bkv50kT7MYzAmJ8FmKO76sLENP8fGQeap7vr9Qgdjdg/noJ4nQx3ZipKcjZWRi7XAhhHre/eKzgme3/34Q8FULZxw84oguQGAX2r0KtrAJtIBvpglh1oL/wEvC1E8jnOW9wHGZiAebYsUIZPEwZcb9QO6kQLikc8xTcoGUHPaiz/ZC1CDJMIOMUcj2EqHocfRDNdRhPQVf6kG8swYw9BX3hX8i9b8CUxmDe/RtyjFPWpMiFeKwHbBwhznPy6iDEEq3uzqDCa5B9PXDXXQjHgdNqMnYuHD nJ0qACwrg1XCRRg3ke/nsbCKNB5GPbv/jfvrkYeQPesF50OXH DwBqIWzEIcPwl26DukNwrlJwRUDjytcP4CSGm5LQ6WM/0AXdOgiy0LEwxJmvQsptRJ5A2ltFHLxIrLuDYgjh2HBS4WE2fGEuEcBSWAVKJ5fhZwehLfZgntqHW5PD4Lbm1A9DsopFYgSuBWJcq6pDgVmOdLAQRJliLoM8riMdlhGIq8h6q0gCTXyPQPIVoagx34JTYDqHU84O66nKmbewLz0NpxDG1Cn6AVchfL3ItARqtyoIiKUWimUZ1Cua3hc7FnICFof5Yi4R9wQiISGX2qj1aYXSvRZ3EKUE8LhItKJ6Y7R1uNWCbEDvpkZIxl7Z4mCV5fhDtHq5QBBrQu1aAs9jGTNdVHWBu0sQUlI/IZLB0THj1czjdeh0bCuVxox59ZljnomUfcpu 0jei5Gdp6YKL1DYB5HZhUoPDAHoygcZ16AGF6A0z0A70ZM4DmotOvoEjn6MoMhkeIHWuCcFDjBxHpZKyynGbQrcMD18X8T4ygV/br2MIsYy7nFAZC2SsjlOnTcAwx1wQy SIxsXx3mIsNMEPUH3oe6vkjUE3AUXs1DWm3QSwt3ceIx3ptG48/ctKJtiAzGaMF rdFOE zm/5Na4gYV/RlBORJnqIo2ql4LAWOlrtOoy2eKEKipuY5sad0/OQljieaqD0EAObtKRLdAKZTwCayA8yY5TtL6N7msJiX2cxlpBgf5flA5 KISVMQQJ8CvOPe0l2PK91FNcpRc7pMFzKYuqP2jUOcXaPBkwZqy4PAjM1BX9sHpr8BvZHCDDLXMRY9UGEi4KVPueQLr31S2KwP2UYFxCvoObRmiEj6V ZBC/0kMLCiFK6lBk0K/F6X4O9ONzsLKqIdmK2s0HF1LSimS QpSMwlduOGZEYisApGQ4QYZf HBZbb6UYRAWKs0TqQ5k1dhiAvGuemPuOwpK3w7l58uvlExShu2wEpT/N6ht5RBUGXI6imcNafmWBa98pF1X4fa5U4schJFKYPcWoMitysu9j2fPKfxC276PAFn495HQd/eEXw/icKnst9lBtg5Va4fJFiPk7oCpqjjKO7HfRkS aUR3KmacnZKFFRJNKk67xQkvJReEHB0R8tRAu8SuT6gNWWaO4ZHXRTKEFWY3L7NEJumJQUvKMNfzyDs3lbGTY6hwSI0kHPGKJZR0huMLMHEHkzIuBHVop13eNySPa0jXGgnyeaRCljPiE7l20m0KCZTxp33chhiuAw5wtf5HZ0Jb41DwEWW0mZKBbage mrskPCsAAyWHNz7CLtxrSsTW s4tHXIvEQUtmYLn W79dIUKkvkQUV5JFXMpc3kSelDhuy4IoiFmOLLLn8uIfEQQbLLJO1yOua9MpQvEo33KZ7ybJY59K/mId5ofPtH0zHNZsF9NYZZsTrXoDYKu9JpEq1df8A9FoPjG1kWPhY97l0bgF6cRPZrQ3ktQBmJUTC/Ggz3dqk0gafjyrJGNJ6ClhgVvxuO/UKwRS2xPtveX fnr4lSFFU miiUbfeyFgfYoGkHJfTwSpMrQa9cajAgHCsFhZ7bxFwI7uoHePezRxtR0j4PeGm3RQ4kRt8jh54s4i0BDkKi9qCkqutopy3zo7wFiG9wjmvMQN2c7xHmo7YJ4RPk4Jv5NCjK8iXFqHnf81ZbNukLQjnSbIeu5r 20DwETsZNhLMmUQaxpM0Kxz8kZYcoqAfU1AzT/EhvbHA93N5jvfss/1GBevMm59yzbdo8R oZBiHCHvryK9sIMxjpF4I89V9kCencW81JBuyybzC8vxcHe5GjGArgc9K2L1ZRw9nDTAThrMM36fF/w0V3iobvMDvH1A5I2KMZBacEi8zVBNMtz8RhNf9DJtUcK3sExMCoauQuOtIp3 I1IL/PgVsJ7v4IuStFpw9Q3AZe49WlHKBbrqymzNrqUaZ1rEkgJHEzxn3pzowKED6Kh bJJ0Su4woIHayFFtsRrbIrO2Kj7SP5fgry9BnDyLfac/uKGDByOSU8/RCtQa5eqHodkqrKfyeWlGWy6wNZekjiGPymypo2mWtYByLVIthsydFWPIRU8sW60HL9gIMRdIfIVv6MhuSBeQF W03JEU/YB8sy8z8B7oxwniRB7INpHsOFM1lzrqec2ISu8QDhbM1qxDtXjthx TZrZAyfZMoRMR MVEpQZygTUPS3Smy5SbSZ2OC2wqbs5baDuy luzuVbvJNKH8lXHI6xdY7D/P0BBEVQJzhFVsxUA1CUzWd0/SRw5bc8mmJMmQ AmymF5oswfkJonH97LHzOL4H2P LtNdsB 8txd/4FxAbzIWk2zLFzcgx3qL9lyu01J3Cw7DIQM2FqoPbtqCCkjXkh5It1vvjRzZXjLqcghdWkJW7Sm p7VnYKYPgycm9l6zk/re1vwTJyOLB3u3oJzmcew1Vst9VbZWt mtYWDrIpXph7IHE3s6sm5trnX4v7zGUFVgInrLuwyTVJD9pBd6wZ6O7IRjnzyqPeJodrdZtc2KPWItjvFURMoeC CcI5PFlyB3W/PqpG SzBBj/PZ 1vkmT0NsOmvHYU7SMwIdpuucA55wNHuUN7YvOTdFDE1aAuvc3zl9t66fZkl9hfdeWswWT98R8ITD6ae HnYc3x7ynmc1Odk5un/afT8GLFR60cI25J4AAAAASUVORK5CYII='
  4.  
    this.chartOption = {
  5.  
    legend: {
  6.  
    itemHeight: 6,
  7.  
    itemWidth: 16,
  8.  
    x: "center", //居右显示
  9.  
    inactiveColor: "rgba(0,0,0,0.9)", // 图例关闭后的颜色
  10.  
    icon: "stack", // 将折线的图例改成矩形
  11.  
    textStyle: {
  12.  
    fontSize: 14,
  13.  
    color: "#A1D1EF", // 图例的文字颜色
  14.  
    padding: [3, 0, 0, 0],
  15.  
    },
  16.  
    selectedMode: false,
  17.  
    data: this.option.leged
  18.  
    },
  19.  
    tooltip: {
  20.  
    trigger: "axis",
  21.  
    axisPointer: { // 鼠标移上去时,触发后的样式
  22.  
    type: "shadow"
  23.  
    },
  24.  
    formatter: function (e) {
  25.  
    if (e.length === 4) {
  26.  
    var str =
  27.  
    e[0].axisValue
  28.  
    "<br>"
  29.  
    "<span style='display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:"
  30.  
    e[0].color.colorStops[1].color
  31.  
    ";'></span>"
  32.  
    ""
  33.  
    e[0].seriesName
  34.  
    " : "
  35.  
    e[0].value
  36.  
    "<br>"
  37.  
    "<span style='display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:"
  38.  
    e[2].color.colorStops[1].color
  39.  
    ";'></span>"
  40.  
    ""
  41.  
    e[2].seriesName
  42.  
    " : "
  43.  
    e[2].value;
  44.  
    return str;
  45.  
     
  46.  
    }
  47.  
    if (e.length === 2) {
  48.  
    var stt =
  49.  
    e[0].axisValue
  50.  
    "<br>"
  51.  
    "<span style='display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:"
  52.  
    e[0].color.colorStops[1].color
  53.  
    ";'></span>"
  54.  
    ""
  55.  
    e[0].seriesName
  56.  
    " : "
  57.  
    e[0].value
  58.  
    ;
  59.  
    return stt;
  60.  
    }
  61.  
    }
  62.  
     
  63.  
    },
  64.  
    grid: {
  65.  
    left: "2%",
  66.  
    right: "2.5%",
  67.  
    bottom: "7%",
  68.  
    containLabel: true
  69.  
    },
  70.  
    xAxis: {
  71.  
    type: "category",
  72.  
    data: this.option.xData,
  73.  
    splitLine: {//分割线配置
  74.  
    show: false
  75.  
    },
  76.  
    axisLabel: { // x轴线文字的样式
  77.  
    interval: 0, // x轴坐标完全展示
  78.  
    textStyle: {
  79.  
    color: "#A1D1EF",
  80.  
    fontSize: 12
  81.  
    },
  82.  
    },
  83.  
    axisTick: {
  84.  
    show: false
  85.  
    },
  86.  
    axisLine: {//x轴线的颜色以及宽度
  87.  
    show: true,
  88.  
    lineStyle: {
  89.  
    color: "#27A6FF",
  90.  
    type: "solid",
  91.  
    width: 1
  92.  
    }
  93.  
    }
  94.  
    },
  95.  
    yAxis: [
  96.  
    {
  97.  
    type: "value",
  98.  
    name: this.option.unit,
  99.  
    nameTextStyle: { // name的样式
  100.  
    color: "#6699C1",
  101.  
    fontSize: 14
  102.  
    },
  103.  
    splitLine: {//分割线配置
  104.  
    show: true,
  105.  
    lineStyle: {
  106.  
    color: "#09304d",
  107.  
    type: "dashed",
  108.  
    width: 1
  109.  
    }
  110.  
    },
  111.  
    axisTick: { // 取消刻度线上的小刻度
  112.  
    show: false
  113.  
    },
  114.  
    axisLine: { // 取消整个刻度线
  115.  
    show: false,
  116.  
    lineStyle: {
  117.  
    color: "rgba(0, 201, 255, 0.2)",
  118.  
    type: "dashed",
  119.  
    width: 1
  120.  
    }
  121.  
    },
  122.  
    axisLabel: { // y轴的文字样式
  123.  
    textStyle: {
  124.  
    color: "#A1D1EF",
  125.  
    fontSize: 12
  126.  
    },
  127.  
    }
  128.  
    },
  129.  
    ],
  130.  
    series: [
  131.  
     
  132.  
    {
  133.  
    name: this.option.leged[0],
  134.  
    type: "bar",
  135.  
    nameStyle: {
  136.  
    width: 100
  137.  
    },
  138.  
    color: '#27a6ff',
  139.  
    barGap: 3, // 柱子之间的间距
  140.  
    yAxisIndex: 0, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  141.  
    barMinWidth: "4px", // 柱子的宽度
  142.  
    barWidth: 2,
  143.  
    itemStyle: {
  144.  
    normal: {
  145.  
    color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
  146.  
    {
  147.  
    offset: 0,
  148.  
    color: "rgba(39, 166, 255, 0)" // 0% 处的颜色
  149.  
    },
  150.  
    {
  151.  
    offset: 1,
  152.  
    color: "#27A6FF" // 100% 处的颜色
  153.  
    }
  154.  
    ], false),
  155.  
    barBorderRadius: [30, 30, 0, 0],
  156.  
    }
  157.  
    },
  158.  
    data: this.option.yData1
  159.  
    },
  160.  
    // 头部的小球
  161.  
    {
  162.  
    name: this.option.leged[0],
  163.  
    type: 'pictorialBar',
  164.  
    symbol: blueDot,
  165.  
    // symbol: "diamond",
  166.  
    symbolSize: [21, 21],
  167.  
    symbolOffset: [-8, -10],
  168.  
    symbolPosition: "end",
  169.  
    z: 12,
  170.  
     
  171.  
    data: this.option.yData1
  172.  
    },
  173.  
    {
  174.  
    name: this.option.leged[1],
  175.  
    type: "bar",
  176.  
    color: "#ff744c",
  177.  
    nameStyle: {
  178.  
    width: 100
  179.  
    },
  180.  
    barGap: 3, // 柱子之间的间距
  181.  
    yAxisIndex: 0, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
  182.  
    barMinWidth: "4px", // 柱子的宽度
  183.  
    barWidth: 2,
  184.  
    itemStyle: {
  185.  
    normal: {
  186.  
    color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
  187.  
    {
  188.  
    offset: 0,
  189.  
    color: "rgba(255, 116, 76, 0)" // 0% 处的颜色
  190.  
    },
  191.  
    {
  192.  
    offset: 1,
  193.  
    color: "#FF744C" // 100% 处的颜色
  194.  
    }
  195.  
    ], false),
  196.  
    barBorderRadius: [30, 30, 0, 0],
  197.  
    }
  198.  
    },
  199.  
     
  200.  
    data: this.option.yData2
  201.  
    },
  202.  
    // 头部的小球
  203.  
    {
  204.  
    name: this.option.leged[1],
  205.  
    type: 'pictorialBar',
  206.  
    symbol: yellowDot,
  207.  
    // symbol: "diamond",
  208.  
    symbolSize: [34, 34],
  209.  
    symbolOffset: [8, -15],
  210.  
    symbolPosition: "end",
  211.  
    z: 12,
  212.  
     
  213.  
    data: this.option.yData2
  214.  
    },
  215.  
     
  216.  
     
  217.  
    ]
  218.  
    };
  219.  
    }

案例十二
学新通

  1.  
    setCharts() {
  2.  
     
  3.  
     
  4.  
    // 黄色部分 堆叠的数据
  5.  
    const splitBar2Value = [];
  6.  
     
  7.  
    for (let i = 0; i < this.option.barData2.length; i ) {
  8.  
    splitBar2Value.push(this.option.barData1[i] this.option.barData2[i]);
  9.  
    }
  10.  
    this.chartOption = {
  11.  
    legend: {
  12.  
    icon: "stack", // 将折线的图例改成矩形
  13.  
    itemHeight: 6,
  14.  
    itemWidth: 16,
  15.  
    x: "center", //居右显示
  16.  
    top: '8%',
  17.  
    inactiveColor: "rgba(0,0,0,0.3)",// 图例关闭后的颜色
  18.  
    textStyle: {
  19.  
    fontSize: 12,
  20.  
    color: "#B5ECF9", // 图例的文字颜色
  21.  
    padding: [0, 0, 0, 0],
  22.  
    },
  23.  
    selectedMode: false, // 点击图例不可以取消
  24.  
    data: this.option.legend,
  25.  
    },
  26.  
    tooltip: {
  27.  
    trigger: "axis",
  28.  
    axisPointer: { // 鼠标移上去时,触发后的样式
  29.  
    type: "shadow"
  30.  
    },
  31.  
    formatter: function (e) {
  32.  
    console.log(e);
  33.  
    const showTool = e.filter(i => (i.componentSubType == 'bar' || i.componentSubType == 'line'))
  34.  
    console.log(showTool, '789');
  35.  
    if (showTool.length === 3) {
  36.  
    const str =
  37.  
    showTool[0].axisValue
  38.  
    "<br>"
  39.  
    "<span style='display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:"
  40.  
    showTool[0].color
  41.  
    ";'></span>"
  42.  
    ""
  43.  
    showTool[0].seriesName
  44.  
    " : "
  45.  
    showTool[0].value
  46.  
    "<br>"
  47.  
    "<span style='display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:"
  48.  
    showTool[1].color
  49.  
    ";'></span>"
  50.  
    ""
  51.  
    showTool[1].seriesName
  52.  
    " : "
  53.  
    showTool[1].value
  54.  
    "<br>"
  55.  
    "<span style='display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:"
  56.  
    showTool[2].color
  57.  
    ";'></span>"
  58.  
    ""
  59.  
    showTool[2].seriesName
  60.  
    " : "
  61.  
    showTool[2].value;
  62.  
    return str;
  63.  
    }
  64.  
    if (showTool.length === 2) {
  65.  
    const stt =
  66.  
    showTool[0].axisValue
  67.  
    "<br>"
  68.  
    "<span style='display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:"
  69.  
    showTool[0].color
  70.  
    ";'></span>"
  71.  
    ""
  72.  
    showTool[0].seriesName
  73.  
    " : "
  74.  
    showTool[0].value
  75.  
    "<br>"
  76.  
    "<span style='display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:"
  77.  
    showTool[1].color
  78.  
    ";'></span>"
  79.  
    ""
  80.  
    showTool[1].seriesName
  81.  
    " : "
  82.  
    showTool[1].value;
  83.  
    return stt;
  84.  
    }
  85.  
     
  86.  
    if (showTool.length === 1) {
  87.  
    const stg =
  88.  
    showTool[0].axisValue
  89.  
    "<br>"
  90.  
    "<span style='display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:"
  91.  
    showTool[0].color
  92.  
    ";'></span>"
  93.  
    ""
  94.  
    showTool[0].seriesName
  95.  
    " : "
  96.  
    showTool[0].value;
  97.  
    return stg;
  98.  
    }
  99.  
     
  100.  
    }
  101.  
    },
  102.  
    grid: {
  103.  
    left: "3.5%",
  104.  
    right: "2%",
  105.  
    bottom: "3%",
  106.  
    top: '30%',
  107.  
    containLabel: true
  108.  
    },
  109.  
    xAxis: {
  110.  
    type: "category",
  111.  
    // data: yearList,
  112.  
    data: this.option.xData,
  113.  
    splitLine: {//分割线配置
  114.  
    show: false
  115.  
    },
  116.  
    axisLabel: { // x轴线文字的样式
  117.  
    textStyle: {
  118.  
    color: "#59A6B7",
  119.  
    fontSize: 12
  120.  
    },
  121.  
    },
  122.  
    axisTick: {
  123.  
    show: false
  124.  
    },
  125.  
    axisLine: {//x轴线的颜色以及宽度
  126.  
    show: true,
  127.  
    lineStyle: {
  128.  
    color: "#053c45",
  129.  
    type: "solid",
  130.  
    width: 1
  131.  
    }
  132.  
    }
  133.  
    },
  134.  
    yAxis: [
  135.  
    {
  136.  
    type: "value",
  137.  
    name: this.option.unit1,
  138.  
    nameTextStyle: { // name的样式
  139.  
    color: "#B5ECF9"
  140.  
    },
  141.  
    splitLine: {//分割线配置
  142.  
    show: false,
  143.  
    lineStyle: {
  144.  
    color: "#3AB2B4",
  145.  
    type: "solid",
  146.  
    width: 0
  147.  
    }
  148.  
    },
  149.  
    axisTick: { // 取消刻度线上的小刻度
  150.  
    show: false
  151.  
    },
  152.  
    axisLine: { // 取消整个刻度线
  153.  
    show: false
  154.  
    },
  155.  
    axisLabel: { // y轴的文字样式
  156.  
    textStyle: {
  157.  
    color: "#59A6B7"
  158.  
    },
  159.  
    }
  160.  
    },
  161.  
    {
  162.  
    type: "value",
  163.  
    name: this.option.unit2,
  164.  
    nameTextStyle: {
  165.  
    color: "#B5ECF9",
  166.  
    padding: [0, 10, 0, 0]
  167.  
    },
  168.  
    position: "right",
  169.  
    splitLine: {//分割线配置
  170.  
    show: false,
  171.  
    lineStyle: {
  172.  
    color: "rgba(0, 112, 107, 0.1)"
  173.  
    }
  174.  
    },
  175.  
    axisTick: { // 取消刻度线上的小刻度
  176.  
    show: false
  177.  
    },
  178.  
    axisLine: { // 取消整个刻度线
  179.  
    show: false
  180.  
    },
  181.  
    axisLabel: {
  182.  
    show: true,
  183.  
    textStyle: {
  184.  
    color: "#59A6B7"
  185.  
    },
  186.  
    }
  187.  
    },
  188.  
    {
  189.  
    type: "value",
  190.  
    gridIndex: 0,
  191.  
    min: 50,
  192.  
    max: 100,
  193.  
    splitNumber: 8,
  194.  
    splitLine: {
  195.  
    show: false
  196.  
    },
  197.  
    axisLine: {
  198.  
    show: false,
  199.  
    },
  200.  
    axisTick: {
  201.  
    show: false
  202.  
    },
  203.  
    axisLabel: {
  204.  
    show: false
  205.  
    },
  206.  
    splitArea: {
  207.  
    show: true,
  208.  
    areaStyle: {
  209.  
    color: ["rgba(250,250,250,0.0)", "rgba(250,250,250,0.02)"]
  210.  
    }
  211.  
    }
  212.  
    }
  213.  
     
  214.  
    ],
  215.  
    series: [
  216.  
    {
  217.  
    name: this.option.legend[0],
  218.  
    type: "bar",
  219.  
    color: "#0CD5F0",
  220.  
    // stack设置柱状图堆叠,stack后面要跟同样的名字
  221.  
    stack: "Search Engine",
  222.  
    nameStyle: {
  223.  
    width: 100
  224.  
    },
  225.  
    yAxisIndex: 0, //使用的 y 轴的 左侧的单位,在单个图表实例中存在多个 y轴的时候有用
  226.  
    barWidth: "14px", // 柱子的宽度
  227.  
    itemStyle: {
  228.  
    normal: {
  229.  
     
  230.  
    lineStyle: {
  231.  
    width: 3
  232.  
    }
  233.  
    }
  234.  
    },
  235.  
    data: this.option.barData1
  236.  
    },
  237.  
    {
  238.  
    // 分隔
  239.  
    name: this.option.legend[0],
  240.  
    type: "pictorialBar",
  241.  
    itemStyle: { // 格子之间的距离的颜色
  242.  
    normal: {
  243.  
    color: "#011419"
  244.  
    }
  245.  
    },
  246.  
    stack: "a",
  247.  
    symbolRepeat: "fixed",
  248.  
    symbolMargin: 2,// 每个小格子的上下之间距离
  249.  
    symbol: "rect",
  250.  
    symbolClip: true,
  251.  
    symbolSize: [14, 2],//每个分割的格子的大小
  252.  
    symbolPosition: "start",
  253.  
    // symbolOffset: [1, 1],
  254.  
    data: this.option.barData1,
  255.  
    width: 8,
  256.  
    zlevel: 1
  257.  
    },
  258.  
     
  259.  
    // yAxisIndex: 0, 因为处理数和预警数在一起 所以将这两个的值设置为同一个,这样 处理数和预警数会同时使用左侧的 y轴的坐标
  260.  
    {
  261.  
    name: this.option.legend[1],
  262.  
    type: "bar",
  263.  
    // stack设置柱状图堆叠,stack后面要跟同样的名字
  264.  
    stack: "Search Engine",
  265.  
    color: "#FF850B",
  266.  
    barWidth: "12px", // 柱子的宽度
  267.  
    yAxisIndex: 0, //使用的 y 轴的 左侧的单位,在单个图表实例中存在多个 y轴的时候有用
  268.  
    showAllSymbol: true, //显示所有图形。
  269.  
    itemStyle: {
  270.  
    normal: {
  271.  
     
  272.  
    barBorderRadius: [2, 2, 2, 2],
  273.  
    lineStyle: {
  274.  
    width: 3
  275.  
    }
  276.  
    }
  277.  
    },
  278.  
    data: this.option.barData2
  279.  
    },
  280.  
    {
  281.  
    // 分隔
  282.  
    type: "pictorialBar",
  283.  
    itemStyle: { // 格子之间的距离的颜色
  284.  
    normal: {
  285.  
    color: "#011419"
  286.  
    }
  287.  
    },
  288.  
    stack: "a",
  289.  
    symbolRepeat: "fixed",
  290.  
    symbolMargin: 2,// 每个小格子的上下之间距离
  291.  
    symbol: "rect",
  292.  
    symbolClip: true,
  293.  
    symbolSize: [14, 2], //每个分割的格子的大小
  294.  
    symbolPosition: "end",
  295.  
    // symbolOffset: [1, 1],
  296.  
    data: splitBar2Value,
  297.  
    width: 8,
  298.  
    zlevel: 1
  299.  
    },
  300.  
    {
  301.  
    name: this.option.legend[2],
  302.  
    type: "line",
  303.  
    color: "#F54628",
  304.  
    yAxisIndex: 1, //使用的 y 轴的右侧的单位,在单个图表实例中存在多个 y轴的时候有用
  305.  
    showAllSymbol: true, //显示所有图形。
  306.  
    smooth: false, //平滑曲线显示
  307.  
    symbol: "circle",
  308.  
    symbolSize: 4, //标记的大小
  309.  
    itemStyle: {
  310.  
    normal: {
  311.  
    lineStyle: {
  312.  
    width: 1
  313.  
    }
  314.  
    }
  315.  
    },
  316.  
    z: 4,
  317.  
    data: this.option.lineData
  318.  
    },
  319.  
     
  320.  
    ]
  321.  
    };
  322.  
    }

案例十三(饼图)

学新通

  1.  
    setCharts() {
  2.  
    const dataList = [
  3.  
    {
  4.  
    value: 75,
  5.  
    show: true,
  6.  
    name: '生物质烘干',
  7.  
    itemStyle: {
  8.  
    normal: {
  9.  
    borderWidth: 10,
  10.  
    color: 'rgba(255, 255, 102, 1)',
  11.  
    borderColor: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
  12.  
    {
  13.  
    offset: 0,
  14.  
    color: '#303c27'
  15.  
    },
  16.  
    {
  17.  
    offset: 0.5,
  18.  
    color: 'rgba(255, 255, 102, 1)'
  19.  
    },
  20.  
    {
  21.  
    offset: 1,
  22.  
    color: '#303c27'
  23.  
    }
  24.  
    ])
  25.  
    }
  26.  
    }
  27.  
    },
  28.  
    // 圆环之间的间隔
  29.  
    {
  30.  
    value: 20,
  31.  
    show: false,
  32.  
    name: '',
  33.  
    itemStyle: {
  34.  
    normal: {
  35.  
    color: 'transparent'
  36.  
    }
  37.  
    }
  38.  
    },
  39.  
    {
  40.  
    value: 90,
  41.  
    show: true,
  42.  
    name: '空气源热泵烘干',
  43.  
    itemStyle: {
  44.  
    normal: {
  45.  
    borderWidth: 10,
  46.  
    color: 'rgba(24, 248, 195, 1)',
  47.  
    borderColor: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
  48.  
    {
  49.  
    offset: 0,
  50.  
    color: '#0c574a'
  51.  
    },
  52.  
    {
  53.  
    offset: 0.5,
  54.  
    color: 'rgba(24, 248, 195, 1)'
  55.  
    },
  56.  
    {
  57.  
    offset: 1,
  58.  
    color: '#0c574a'
  59.  
    }
  60.  
    ])
  61.  
    }
  62.  
    }
  63.  
    },
  64.  
    // 圆环之间的间隔
  65.  
    {
  66.  
    value: 20,
  67.  
    show: false,
  68.  
    name: '',
  69.  
    itemStyle: {
  70.  
    normal: {
  71.  
    color: 'transparent'
  72.  
    }
  73.  
    }
  74.  
    },
  75.  
    {
  76.  
    value: 130,
  77.  
    show: true,
  78.  
    name: '直热电烘',
  79.  
    itemStyle: {
  80.  
    normal: {
  81.  
    borderWidth: 10,
  82.  
    color: 'rgba(12, 213, 240, 1)',
  83.  
    borderColor: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
  84.  
    {
  85.  
    offset: 0,
  86.  
    color: '#044a54'
  87.  
    },
  88.  
    {
  89.  
    offset: 0.5,
  90.  
    color: 'rgba(12, 213, 240, 1)'
  91.  
    },
  92.  
    {
  93.  
    offset: 1,
  94.  
    color: '#044a54'
  95.  
    }
  96.  
    ])
  97.  
    }
  98.  
    }
  99.  
    },
  100.  
    // 圆环之间的间隔
  101.  
    {
  102.  
    value: 20,
  103.  
    show: false,
  104.  
    name: '',
  105.  
    itemStyle: {
  106.  
    normal: {
  107.  
    color: 'transparent'
  108.  
    }
  109.  
    }
  110.  
    },
  111.  
    ]
  112.  
     
  113.  
     
  114.  
     
  115.  
     
  116.  
    this.chartOption = {
  117.  
    // title: this.option.title,
  118.  
    "title": {
  119.  
    "text": "5000",
  120.  
    "subtext": "年度电烘干总\n容量(kW)",
  121.  
    x: "center",
  122.  
    y: '30%',
  123.  
    textStyle: {
  124.  
    color: '#fff',
  125.  
    fontSize: '28'
  126.  
    },
  127.  
    subtextStyle: {
  128.  
    color: '#B5ECF9',
  129.  
    fontSize: '14',
  130.  
     
  131.  
    },
  132.  
    },
  133.  
     
  134.  
    series: [
  135.  
    {
  136.  
    name: '',
  137.  
    type: 'pie',
  138.  
    clockWise: false,
  139.  
    startAngle: '90',
  140.  
    center: ['50%', '50%'],
  141.  
    radius: ['60%', '61%'],
  142.  
    hoverAnimation: false,
  143.  
    itemStyle: {
  144.  
    normal: {
  145.  
    label: {
  146.  
    show: true,
  147.  
    position: 'outside',
  148.  
    color: '#fff',
  149.  
    formatter: function (params: any) {
  150.  
    let percent: number | any = 0;
  151.  
    let total = 0;
  152.  
    for (let i = 0; i < dataList.length; i ) {
  153.  
    total = dataList[i].value;
  154.  
    }
  155.  
    percent = ((params.value / total) * 100).toFixed(0);
  156.  
    if (params.name !== '') {
  157.  
    return ' {title|' params.name '}' '\n{white|' params.value '}' '\n{white|' '占比' percent '%}';
  158.  
    } else {
  159.  
    return '';
  160.  
    }
  161.  
    },
  162.  
    rich: {
  163.  
    white: {
  164.  
    color: '#ddd',
  165.  
    align: 'left',
  166.  
    padding: [3, 0]
  167.  
    },
  168.  
    title: {
  169.  
    color: '#B5ECF9',
  170.  
    align: 'left',
  171.  
    }
  172.  
    }
  173.  
    },
  174.  
    labelLine: {
  175.  
    length: 10,
  176.  
    length2: 20,
  177.  
    show: true,
  178.  
    }
  179.  
    }
  180.  
    },
  181.  
    data: dataList,
  182.  
    animationType: 'scale',
  183.  
    animationEasing: 'elasticOut',
  184.  
    animationDelay: function (idx) {
  185.  
    return idx * 50;
  186.  
    }
  187.  
    },
  188.  
    // {
  189.  
    // name: '',
  190.  
    // type: 'pie',
  191.  
    // center: ['50%', '50%'],
  192.  
    // radius: ['49%', '49%'],
  193.  
    // itemStyle: {
  194.  
    // color: 'transparant'
  195.  
    // },
  196.  
    // startAngle: '90',
  197.  
    // data: [{
  198.  
    // value: total,
  199.  
    // name: '',
  200.  
    // label: {
  201.  
    // normal: {
  202.  
    // show: true,
  203.  
    // formatter: '{c|{c}} {b|条记录}',
  204.  
    // rich: {
  205.  
    // c: {
  206.  
    // color: 'rgb(98,137,169)',
  207.  
    // fontSize: 50,
  208.  
    // fontWeight: 'bold',
  209.  
    // lineHeight: 5
  210.  
    // },
  211.  
    // b: {
  212.  
    // color: 'rgb(98,137,169)',
  213.  
    // fontSize: 40,
  214.  
    // lineHeight: 5
  215.  
    // }
  216.  
    // },
  217.  
    // textStyle: {
  218.  
    // fontSize: 28,
  219.  
    // fontWeight: 'bold'
  220.  
    // },
  221.  
    // position: 'center'
  222.  
    // }
  223.  
    // }
  224.  
    // }]
  225.  
    // }
  226.  
    ]
  227.  
    };
  228.  
    }

案例十四:(折线图设置markLine和自定义的markPoint)

学新通

  1.  
    setCharts() {
  2.  
     
  3.  
     
  4.  
     
  5.  
    const orangePoint = 'image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAKPSURBVHgBfVM7aBRRFD33zezs7Mxs9qMoUTRgaxVT2KcwdloKlhYWAUEIxMiC4ydGBe1sBO00RSoRGxvbFEoUsTAQCzUGzWY/2d3Z2Zmdd727a6LExFfed89555x7H7Dj8JwzxgxiH4pvuS941ptn31cMqd11Du3sp20gM GOdw6axhHTDFynDZ2o/mW nKCRddDhS2B8o1Lj0Rb0D4G8Aut AZ1GDMvNQJsOHJ1CRy6jOAKyIYpJgEpQxMfwKy0g2Sbg295FJMYrmPUaWnYeriqKkiJIZZD0 iiAyVVAbwDpOlgraH2KSq15k33xxTiMRr2MbG4/nEh88qiAJsHJCBRlxN8SEvVEUlkCiaROWIHljfNcbpl64cDP7kNeG6iZR2DEJ6FwT8rOjrwCME0jpRdRxyo81cXVRnkQ0jEJrJ1kkO7mQXRhF3DvOKJgEpFYU9pGLtOGT6Rw032GldiQhC1E7IqeUex1GCMyTHkoZaG5TjDd50oAHpwKw5IGw h1tbH3yUAZEnz0ewmoqVBqncHwQY2EYpAOpPrlPwokxKgJ2BGUYOKp80roND4HwhwG4rEiBA lM9gFHYj8x4iNKpJ6Gy0Z8TWfDRnFmIRyBVnvJWoRCUlTRvdBEh8We8MDS7QiDLNC8E5G hOFoU1E7ctYHPpk0kz9Ld wX6NJKbhhDR2bkaJQdC3LIrmDx3VL5FeheQNJWMWmXZDqKk2Xvw82sfcPrhMhbR9F6FRkWRwYMlaw1SewxTN3RXYrQDqbwtLpGi0s9FdZDcIkJl/e7JoTsKIpKXdxoPADXXcNuc4aHGsdgdRS7gNRM7EF7mP/iaq32n6wBl/uUkNPZZ09vG dxXExYTonqBS8 bv/F/I5GZ4SzNdTAAAAAElFTkSuQmCC'
  6.  
    const bluePoint = 'image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAXDSURBVHgBjVZNiFzHEa6q7vcz 2bmzSgzWuJsQiQWJdJGZEEEfPPgJOSYEKyzEwjkErBCyDHxrA 5BSuQHHLKz3UPSSCQQ2xrbTDYoMV/OyvbrGUhC63XGu28tzOzO29ed5er39rYMpLthh6mf6qqq qrrx7AlxnMWN/OrtQHGftlsjVZ9etka3Sp9crom58nSvfRhulr759KtkeXvOJqrgGmOHlsci5VsqbfriSvA/FTBLRqI7xSf2PUq 59iYH VY3B6EZzkK JkIIrV3SPWZ/b4tBP2NoKZT AqzJl359Dn ljA/wZQ/hJFBgbb04eYbZ/0xZ kBc7NyFNCe7EtJgE5NQish4iDAGGLWZod92SA741Awe5zOsyt4Hrj2WPTFZaG4DInzLAskJAb Tt2yfG44dymN/SHRdrk2jlAiJnj7REH5gQpyW7hjtgCo0NwgUT73dMnO246cnFxqRmryLS5fxs8zIigj7WL5bWKtfwjCi/DRAU3QVdmCBwlgIXU8CGdVRaYpGKNLuSaobIljlH83Y4Ivvd5XJ3BAdpmH/fzPmZ9pvZv0XfjSrJdQlN3//ZBNqUl afR2Owygw5YKOdFIrbFOhbpYaWkZx6oibEsamDsOkpnWtTINwNhsFkN5SeZ7eVMz/LBl 4lXqWGCGEvfBOViGC4CdF2NdtIMgn88jZ11NzY8S51QtYIhEyHvMkQZrlZ6xs9rZKYFOAI3kZTd2sAjuR6 0nlq/KDnxMFWBWHL4/Hp3A7 6ebuKueUilNjUVKATkpcC2jPG2D9JKP8lyfo/WPqD7J hUjVqTidBUcbWFkFLZOUJuN4F7K tVfklIvyx0vQPaPRwN1BoY6WcS4JZqEJFqiYAPOUQ/ywYOI8 y8dJexjQ/cUxnC7IxQ5NFM506GUXD0BBw4PnyeNCc45/felb9ef9oltBESlyc61LChltJKD55SeK78F3guB owxFUnt6toDEukF76g5ekPOnf5qnvtpp p32q15g YMd4myIfPeQmOYEUUjsUAnAHoYHVSXCaUG2FryqqBRWOJwgZIibMWB Ps0lpD3y/NKXyzvfWGboiFBngTEKGcrSY8AjePogA3KWaLTiTAkzWU/Ez06nc3y4vo5ScCgRgI2lwUELYCAlevc4FjZy4rCVYjTo F14oAvwkkVnUGkbB5Grs1SsgaqC4eJFJ7SzSuOz6aO/WGlmMFvhYaPlDjN2hfHKdSlMN5cH/PF Xvg9Mf5Xy1QIRE1hjizmUt12j8Udrr V9YQbnibPGU9W9zdFpHR0NLJEXBK6uRV kPxdF6L6laD85Y8Vy88b1R7BdSQ6EuYoaGZLpRbM3olFB2PxxNHj4tB/jrlIMtXb2FAbSz3V2RuGw3ge1aJYIB7UlLMJi6QCDLkUdAkKrQ dUoV/gDLm0BTzQ91oHAZ5We5/Zb A5WXT2M7eUSRJ9vqTQfbE1ZOrv/OsOPxap2y3a6VyZUGmPBLUTpTD3M1MplV8t1RwV7wYCcJyCc/YQDJV7eZMT42J9MxAUXjQCDnDz7Oz7RuVB lr2Smn4Tnk Q XoHtzNLutZ1ALTOMosNMwDGMdzEjSXh43KAyEBozQoA9LEs11aMwobpcwAgMrYOWK wxdAzSl0QgVPwGKvjcubx4ILypoRiodHQWu0yZJt2I6rO5jvCDFy06HDaN2hy6I5zb54NDunVxojP/70D70K36 14AfrWvjXvbt gsX14VPTstr052q4UBICHFAHd2V 0MYCrEtWsd7U0loV15bDDjlpa8Lyz4rZn82Oe Z4T4GfFfzTUJaIMK59eqs1 3ihvAUXB/I3gpAtIM zhcE1g1BS/cO8P9Wst/L5ceFmy5PVtqX8Qu7s/ KuDbqCRLebWznf69vZY/2hXA 6r3U3HrvRL/fp P y1Ufb137/K LTw/8aIIX8sLVJ8rbo1VBBnhq8Wt/h/kemfuODwGRiQmtR2ztLgAAAABJRU5ErkJggg=='
  7.  
    const newArrLine1: any[] = [];
  8.  
    (this.option.lineData1).map(function (val: any) {
  9.  
    newArrLine1.push(val);
  10.  
    })
  11.  
    // 根据y轴的最大值的索引,找到x轴对应的值
  12.  
    const maxLineData1Index = this.option.lineData1.indexOf((newArrLine1).sort((a: number, b: number) => Number(b) - Number(a))[0])
  13.  
     
  14.  
     
  15.  
    const newArrLine2: any[] = [];
  16.  
    // 根据y轴的最大值的索引,找到x轴对应的值
  17.  
    (this.option.lineData2).map(function (val: any) {
  18.  
    newArrLine2.push(val);
  19.  
    })
  20.  
     
  21.  
    const maxLineData2Index = this.option.lineData2.indexOf((newArrLine2).sort((a: number, b: number) => Number(b) - Number(a))[0])
  22.  
    this.chartOption = {
  23.  
    legend: {
  24.  
    icon: "stack", // 将折线的图例改成矩形
  25.  
    itemHeight: 6, // 图例的高度
  26.  
    itemWidth: 16, // 图例的宽度
  27.  
    x: "center", //居右显示
  28.  
    y: '10%',
  29.  
    inactiveColor: "rgba(0,0,0,0.3)",// 图例关闭后的颜色
  30.  
    textStyle: {
  31.  
    fontSize: 12,
  32.  
    color: "#B5ECF9", // 图例的文字颜色
  33.  
    padding: [30, 0, 0, 0],
  34.  
    },
  35.  
    selectedMode: false, // 点击图例不可以取消
  36.  
    data: this.option.legend,
  37.  
    },
  38.  
    tooltip: {
  39.  
    trigger: "axis",
  40.  
     
  41.  
    },
  42.  
    grid: {
  43.  
    left: "0%",
  44.  
    right: "0%",
  45.  
    bottom: "3%",
  46.  
    containLabel: true
  47.  
    },
  48.  
    xAxis: {
  49.  
    type: "category",
  50.  
    // data: yearList,
  51.  
    data: this.option.xData,
  52.  
    splitLine: {//分割线配置
  53.  
    show: false
  54.  
    },
  55.  
    axisLabel: { // x轴线文字的样式
  56.  
    textStyle: {
  57.  
    color: "#59A6B7",
  58.  
    fontSize: 12
  59.  
    },
  60.  
    },
  61.  
    axisTick: {
  62.  
    show: false
  63.  
    },
  64.  
    axisLine: {//x轴线的颜色以及宽度
  65.  
    show: true,
  66.  
    lineStyle: {
  67.  
    color: "#055f6c",
  68.  
    type: "solid",
  69.  
    width: 1
  70.  
    }
  71.  
    }
  72.  
    },
  73.  
    yAxis: [
  74.  
    {
  75.  
    type: "value",
  76.  
    name: this.option.unit1,
  77.  
    splitNumber: 5,
  78.  
    nameTextStyle: { // name的样式
  79.  
    color: "#B5ECF9"
  80.  
    },
  81.  
     
  82.  
    axisTick: { // 取消刻度线上的小刻度
  83.  
    show: false
  84.  
    },
  85.  
    axisLine: { // 取消整个刻度线
  86.  
    show: false
  87.  
    },
  88.  
     
  89.  
    splitLine: {
  90.  
    show: false,
  91.  
    lineStyle: {
  92.  
    color: "#59A6B7",
  93.  
    opacity: 0.3,
  94.  
    type: "dashed",
  95.  
    },
  96.  
    },
  97.  
    axisLabel: {
  98.  
    textStyle: {
  99.  
    color: "#59A6B7",
  100.  
    },
  101.  
    },
  102.  
    },
  103.  
    {
  104.  
    type: "value",
  105.  
    name: this.option.unit2,
  106.  
    splitNumber: 5,
  107.  
    nameTextStyle: { // name的样式
  108.  
    color: "#B5ECF9",
  109.  
    padding: [0, 10, 0, -10]
  110.  
    },
  111.  
     
  112.  
    axisTick: { // 取消刻度线上的小刻度
  113.  
    show: false
  114.  
    },
  115.  
    axisLine: { // 取消整个刻度线
  116.  
    show: false
  117.  
    },
  118.  
     
  119.  
    splitLine: {
  120.  
    show: false,
  121.  
    lineStyle: {
  122.  
    color: "#3AB2B4",
  123.  
    opacity: 0.3,
  124.  
    type: "solid",
  125.  
    },
  126.  
    },
  127.  
    axisLabel: {
  128.  
    textStyle: {
  129.  
    color: "#59A6B7",
  130.  
    },
  131.  
    },
  132.  
    },
  133.  
    {
  134.  
    type: "value",
  135.  
    gridIndex: 0,
  136.  
    min: 50,
  137.  
    max: 100,
  138.  
    splitNumber: 8,
  139.  
    splitLine: {
  140.  
    show: true,
  141.  
    lineStyle: {
  142.  
    color: "#3AB2B4",
  143.  
    opacity: 0.3,
  144.  
    type: "dashed",
  145.  
    },
  146.  
    },
  147.  
    axisLine: {
  148.  
    show: false
  149.  
    },
  150.  
    axisTick: {
  151.  
    show: false
  152.  
    },
  153.  
    axisLabel: {
  154.  
    show: false
  155.  
    },
  156.  
    splitArea: {
  157.  
    show: false,
  158.  
    areaStyle: {
  159.  
    color: ["rgba(250,250,250,0.0)", "rgba(250,250,250,0.05)"]
  160.  
    }
  161.  
    }
  162.  
    }
  163.  
     
  164.  
    ],
  165.  
    series: [
  166.  
    {
  167.  
    type: "line",
  168.  
    symbol: "none", // 不展示折线的圆点
  169.  
    name: this.option.legend[0],
  170.  
    smooth: true, // 平滑的折线
  171.  
    itemStyle: {
  172.  
    normal: {
  173.  
    color: "#ff9f48", //改变折线点的颜色
  174.  
    lineStyle: {
  175.  
    color: "#ff9f48", //改变折线颜色
  176.  
    type: "solid"
  177.  
    }
  178.  
    }
  179.  
    },
  180.  
    areaStyle: {
  181.  
    //折线图颜色半透明
  182.  
    color: {
  183.  
    type: "linear",
  184.  
    x: 0,
  185.  
    y: 0,
  186.  
    x2: 0,
  187.  
    y2: 1,
  188.  
    colorStops: [{
  189.  
    offset: 0, color: "rgba(255, 159, 72, 0.5)" // 0% 处的颜色
  190.  
    }, {
  191.  
    offset: 1, color: "rgba(255, 159, 72, 0)" // 100% 处的颜色
  192.  
    }],
  193.  
    global: false // 缺省为 false
  194.  
    }
  195.  
    },
  196.  
    toolbox: {
  197.  
    show: false,
  198.  
    },
  199.  
    data: this.option.lineData1,
  200.  
    yAxisIndex: 0,
  201.  
    // 标注最大点
  202.  
    markPoint: {
  203.  
    symbol: orangePoint,
  204.  
    symbolSize: 14,
  205.  
    label: {
  206.  
    show: true,
  207.  
    normal: {
  208.  
    offset: [0, 5],
  209.  
    position: 'top',
  210.  
    textStyle: {
  211.  
    color: '#ff850b'
  212.  
    }
  213.  
    }
  214.  
    },
  215.  
    data: [
  216.  
    {
  217.  
    type: 'max',
  218.  
    name: '最大值',
  219.  
    },
  220.  
    ]
  221.  
    },
  222.  
    markLine: {
  223.  
    lineStyle: {
  224.  
    normal: {
  225.  
    type: 'dashed',
  226.  
    color: '#dc9247'
  227.  
    }
  228.  
    },
  229.  
    symbol: 'circle',
  230.  
    symbolSize: 0,
  231.  
    animationDuration: 1000,
  232.  
    label: {
  233.  
    show: false,
  234.  
    position: 'middle',
  235.  
    formatter: '{b}:{c}'
  236.  
    },
  237.  
    data: [
  238.  
    { xAxis: this.option.xData[maxLineData1Index] }
  239.  
    // { type: 'min', name: '平均值', valueIndex: 0 },
  240.  
    // { type: 'max', name: '平均值', valueIndex: 1 }
  241.  
    // { xAxis: 170 }
  242.  
    ]
  243.  
    },
  244.  
    },
  245.  
    {
  246.  
    type: "line",
  247.  
    symbol: "none", // 不展示折线的圆点
  248.  
    name: this.option.legend[1],
  249.  
    smooth: true, // 平滑的折线
  250.  
    yAxisIndex: 1,
  251.  
    itemStyle: {
  252.  
    normal: {
  253.  
    color: "#4fe2cf", //改变折线点的颜色
  254.  
    lineStyle: {
  255.  
    color: "#4fe2cf", //改变折线颜色
  256.  
    type: "solid"
  257.  
    }
  258.  
    }
  259.  
    },
  260.  
    areaStyle: { // 折线下的区域颜色
  261.  
    //折线图颜色半透明
  262.  
    color: {
  263.  
    type: "linear",
  264.  
    x: 0,
  265.  
    y: 0,
  266.  
    x2: 0,
  267.  
    y2: 1,
  268.  
    colorStops: [{
  269.  
    offset: 0, color: "rgba(79, 226, 207, 0.5)" // 0% 处的颜色
  270.  
    }, {
  271.  
    offset: 1, color: "rgba(79, 226, 207,0)" // 100% 处的颜色
  272.  
    }],
  273.  
    global: false // 缺省为 false
  274.  
    }
  275.  
    },
  276.  
    toolbox: {
  277.  
    show: false,
  278.  
    },
  279.  
    data: this.option.lineData2,
  280.  
    // 标注最大点
  281.  
    markPoint: {
  282.  
    symbol: bluePoint,
  283.  
    symbolSize: 14,
  284.  
    label: {
  285.  
    show: true,
  286.  
    normal: {
  287.  
    offset: [0, 5],
  288.  
    position: 'top',
  289.  
    textStyle: {
  290.  
    color: '#0cd5f0'
  291.  
    }
  292.  
    }
  293.  
    },
  294.  
    data: [
  295.  
    {
  296.  
    type: 'max',
  297.  
    name: '最大值',
  298.  
    },
  299.  
    ]
  300.  
    },
  301.  
    markLine: {
  302.  
    lineStyle: {
  303.  
    normal: {
  304.  
    type: 'dashed',
  305.  
    color: '#0cd5f0'
  306.  
    }
  307.  
    },
  308.  
    animationDuration: 1000,
  309.  
    symbol: 'circle',
  310.  
    symbolSize: 0,
  311.  
    label: {
  312.  
    show: false,
  313.  
    position: 'middle',
  314.  
    formatter: '{b}:{c}'
  315.  
    },
  316.  
    data: [
  317.  
    // { type: 'max', name: '平均值', valueIndex: 1 },
  318.  
    // { type: 'max', name: '平均值', valueIndex: 1 }
  319.  
    { xAxis: this.option.xData[maxLineData2Index] }
  320.  
    ]
  321.  
    },
  322.  
    },
  323.  
     
  324.  
     
  325.  
    ],
  326.  
    };
  327.  
    }

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhiahjbi
系列文章
更多 icon
同类精品
更多 icon
继续加载