精华内容
下载资源
问答
  • echarts双X轴刻度居中

    2020-11-11 17:19:09
    echarts双X轴刻度居中 小伙伴们如果遇到echarts双X轴居中问题,可以参考本文,亲测有效哦 页面要实现的效果如下图所示: 代码如下图所示: let smxData = [ “38”, “39”, “39”, “39”, “39”, “39”,...

    echarts双X轴刻度居中

    小伙伴们如果遇到echarts双X轴居中问题,可以参考本文,亲测有效哦

    • 页面要实现的效果如下图所示:
      在这里插入图片描述

    • 代码如下图所示

    • let smxData =
      [
      “38”, “39”, “39”, “39”, “39”, “39”, “39”,“39”, “40”,“40”, “40”,“40”, “40”, “40”, “40”, “41”, “41”, “41”,“41”, “41”,“41”,“41”,“42”];
      let indexData =
      [true, true,false, false,false, false,false, false,true, false,false, false,false, false, false, true,false,false,false,false,false,false,true];
      let indexData2 = [true,false, false,false, true, false,false,false, false,false, false, true,false,false, false,false,
      false,false, true,false, false, false,true];
      var option = {
      title: {
      text: “XXXXX行情走势图”,
      x: “center”,
      align: “right”,
      },
      grid: {
      bottom: 160,
      },
      tooltip: {
      trigger: “axis”,
      axisPointer: {
      animation: false,
      },
      },
      dataZoom: [
      {
      show: false,
      realtime: false,
      },
      ],
      xAxis: [
      {
      type: “category”,
      position: “bottom”,
      //boundaryGap: false,
      axisLine: { show: true },
      data: [
      “1”,
      “2”,
      “3”,
      “4”,
      “5”,
      “6”,
      “7”,
      “8”,
      “2”,
      “3”,
      “4”,
      “5”,
      “6”,
      “7”,
      “8”,
      “2”,
      “3”,
      “4”,
      “5”,
      “6”,
      “7”,
      “8”,
      “9”,
      ],
      },
      {
      type: “category”,
      //boundaryGap: false,
      position: “bottom”,
      data: smxData,
      axisLabel: {
      margin: 70, /设置坐标轴文字与轴线距离/
      align: “center”,
      show: true,
      interval: function (index, value) {
      if (indexData2[index]) {
      return value;
      }
      },
      },
      axisLine: {
      lineStyle: {
      width: 1,
      },
      },
      axisTick: {
      // inside: true,
      interval: function (index, value) {
      if (indexData[index]) {
      return value;
      }
      },
      length: 60,
      },
      },
      ],
      yAxis: [
      {
      type: “value”,
      min: 100,
      axisLine: { show: false },
      axisTick: { show: false },
      axisLabel: {
      formatter: function (value, index) {
      return value > 1000 ? value / 1000 + “k” : value;
      },
      },
      splitLine: {
      show: true,
      },
      },
      ],
      series: [
      {
      name: “模拟数据”,
      type: “line”,
      smooth: true,
      symbol: “none”,
      sampling: “average”,
      itemStyle: {
      normal: {
      color: “green”,
      },
      },
      markLine: {
      silent: true,
      animation: false,
      symbol: “”,
      label: {
      normal: { show: false },
      },
      lineStyle: {
      normal: {
      color: “#666”,
      type: “dotted”,
      },
      },
      data: [
      {
      yAxis: 920,
      },
      ],
      },
      data: [
      600,
      870,
      1120,
      700,
      345,
      666,
      777,
      888,
      870,
      1120,
      700,
      345,
      666,
      777,
      888,
      870,
      1120,
      700,
      345,
      666,
      777,
      888,
      222,
      ],
      },
      ],
      };


    学习目标:

    echarts图表

    1、 封装echarts各类图表
    2、 掌握echarts各图表配置信息


    学习时间:

    提示:这里可以添加计划学习的时间
    周一至周五晚上 9:00-9:30


    学习产出:

    1、 技术笔记 1 遍 2、CSDN 技术博客 1 篇
    展开全文
  • echarts双Y(简单明了)

    千次阅读 2020-06-29 09:41:13
    本文主要实现echarts双Y,并在此过程中解决: echarts双Y左右刻度线一致 图例分布显示 坐标刻度标签数值取整 X/Y名称的分布 坐标刻度标签数值以某一值为分界点改变颜色 等问题 1、 echarts双Y左右...

    本文主要实现echarts双Y轴,并在此过程中解决:

    • 实现echarts双Y轴
    • echarts双Y轴左右刻度线一致
    • 图例分布显示
    • 坐标轴刻度标签数值取整
    • X/Y轴名称的分布
    • 坐标轴刻度标签数值以某一值为分界点改变颜色

    等问题
    下方有源码!请注意查收!
    在这里插入图片描述

    1、 实现echarts双Y轴

    1、就一个Y轴时yAxis为对象

       yAxis: {
            type: 'value',
            name:'Y轴名称'
       },
    

    2、两个Y轴时yAxis为数组

    	yAxis : [{
    		  type: 'value',
    		  name:'左侧Y轴名称',
    		  min: 0,
    		  max: 5,
    		  interval: 1,
    		  splitNumber: 6, //设置坐标轴的分割段数
    	 },
    	 {
    		  type: 'value',
    		  name:'右侧Y轴名称',
    		  min: 0,
    		  max: 125,
    		  interval: 25,
    		  splitNumber: 6, //设置坐标轴的分割段数
    	}],
    

    2、 echarts双Y轴左右刻度线一致

    参考文档:
    https://blog.csdn.net/qq_40845885/article/details/82108525
    https://blog.csdn.net/LzzMandy/article/details/79400141?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-7&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-7

    2.1 、获取数据最大值与最小值

          // 获取最大值方法
          function calMax(arr) {
            var max = Math.max.apply(null, arr); // 获取最大值方法
            var maxint = Math.ceil(max / 5); // 向上以5的倍数取整
            var maxval = maxint * 5 + 5; // 最终设置的最大值
            return maxval; // 输出最大值
          }
          // 获取最小值方法
          function calMin(arr) {
            var min = Math.min.apply(null, arr); // 获取最小值方法
            var minint = Math.floor(min / 1); // 向下以1的倍数取整
            var minval = minint * 1 - 5; // 最终设置的最小值
            return minval; // 输出最小值
          }
          // 调用方法获取数据最大值&最小值
          ......
    

    2.2 、确定两侧坐标轴的分割段数

    splitNumber: 6,
    

    2.3、通过坐标轴的分割段数splitNumber计算坐标轴分割间隔interval

    interval: (maxData1 - minData1) / 6,
    

    2.4、 设置yAxisIndex

    yAxisIndex: 1,    //在单个图表实例中存在多个y轴的时候有用
    

    3、图例分布显示

    利用legend组件的top、bottom、left、right属性去配置

    legend: [
              {
                top: "30%",
                right: "0%",
                data: [ {name: "数据1" } ]
              },
              {
                bottom: "20%",
                left: "0%",
                data: [ {name: "数据2"} ]
              }
            ],
    

    4、坐标轴刻度标签数值取整

    利用toFixed()方法,该方法可把 Number 四舍五入为指定小数位数的数字。规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20。

    axisLabel: {
          formatter: function(v) {
               return v.toFixed(2); //0表示小数为0位,1表示1位小数,2表示2位小数
          }
     }
    

    5、X/Y轴名称的分布

    根据文档X/Y轴名称显示位置 nameLocation的值只能是:‘start’、‘middle’ 或者’center’、‘end’,没办法指定到某一位置,所以本人想到的方法就是利用nameLocation.padding。

    nameTextStyle: {
          padding: [上, 右, 下, 左]
          // 或 padding: [上下,左右]
    }
    

    6、坐标轴刻度标签数值以某一值为分界点改变颜色

    利用axisLabel.color属性

    axisLabel: {
      color: function(value, index) {
          turn value >= 1000 ? "red" : "green";
      }
    }
    

    value >= 1000 ? “red” : “green”;为三目运算符,意思是:如果数值大于等于1000那么数值颜色为红色,否则为绿色。

    源码:

    <template>
      <div class="home">
        <div id="wire"></div>
      </div>
    </template>
    
    <script>
    export default {
      name: "Home",
      data() {
        return {
          data1: [820, 932, 901, 934, 1290, 1330, 1320, 1330, 1340],
          data2: [134, 133, 132, 133, 129, 93, 90, 93, 82]
        };
      },
      mounted() {
        this.myChart = this.$echarts.init(document.getElementById("wire"));
        this.initData();
      },
      methods: {
        initData() {
          // 获取最大值方法
          function calMax(arr) {
            var max = Math.max.apply(null, arr); // 获取最大值方法
            var maxint = Math.ceil(max / 5); // 向上以5的倍数取整
            var maxval = maxint * 5 + 5; // 最终设置的最大值
            return maxval; // 输出最大值
          }
          // 获取最小值方法
          function calMin(arr) {
            var min = Math.min.apply(null, arr); // 获取最小值方法
            var minint = Math.floor(min / 1); // 向下以1的倍数取整
            var minval = minint * 1 - 5; // 最终设置的最小值
            return minval; // 输出最小值
          }
          // 调用方法,获取数据的最大值&最小值
          var maxData1 = calMax(this.data1);
          var maxData2 = calMax(this.data2);
          var minData1 = calMin(this.data1);
          var minData2 = calMin(this.data2);
    
          const option = {
            // 图例组件
            legend: [
              {
                top: "30%",
                right: "0%",
                textStyle: {
                  fontSize: 12, //字体大小
                  color: "#" //字体颜色(图例与图例文字配色保持一致)
                },
                data: [
                  {
                    name: "数据1"
                  }
                ]
              },
              {
                bottom: "20%",
                left: "0%",
                textStyle: {
                  fontSize: 12, //字体大小
                  color: "#" //字体颜色
                },
                data: [
                  {
                    name: "数据2"
                  }
                ]
              }
            ],
            // 直角坐标系内绘图网格
            grid: {
              show: true,
              x: 120,
              y: 50,
              x2: 120,
              y2: 50
            },
            xAxis: {
              name: "X轴数据",
              type: "category",
              data: ["10", "20", "30", "40", "50", "60", "70", "80", "90"],
              nameTextStyle: {
                padding: [0, 0, 50, 50]
              }
            },
            yAxis: [
              {
                type: "value",
                name: "左侧",
                nameTextStyle: {
                  padding: [0, 0, -55, -150]
                },
                min: minData1,
                max: maxData1,
                splitNumber: 6, //设置坐标轴的分割段数
                interval: (maxData1 - minData1) / 6, // 标轴分割间隔
                axisLabel: {
                  formatter: function(v) {
                    return v.toFixed(1); //0表示小数为0位,1表示1位小数,2表示2位小数
                  },
                  color: function(value, index) {
                    return value >= 1000 ? "red" : "green";
                  }
                }
              },
              {
                type: "value",
                name: "右侧",
                nameTextStyle: {
                  padding: [0, 50, -50, 200]
                },
                min: minData2,
                max: maxData2,
                splitNumber: 6,
                interval: (maxData2 - minData2) / 6,
                axisLabel: {
                  formatter: function(v) {
                    return v.toFixed(2); //0表示小数为0位,1表示1位小数,2表示2位小数
                  }
                }
              }
            ],
            series: [
              {
                name: "数据1",
                type: "line",
                color: ["#eb9f0d"],
                symbol: "none",
                smooth: true,
                data: this.data1
              },
              {
                name: "数据2",
                type: "line",
                color: ["#969ac7"],
                symbol: "none",
                smooth: true,
                yAxisIndex: 1, //在单个图表实例中存在多个y轴的时候有用
                data: this.data2
              }
            ]
          };
          this.myChart.setOption(option);
          // 自适应布局
          let _this = this;
          window.addEventListener("resize", function(event) {
            _this.myChart.resize();
          });
        }
      }
    };
    </script>
    
    <style lang="scss" scoped>
    .home {
      width: 100%;
      height: 100%;
      display: flex;
      justify-content: center;
      #wire {
        width: 800px;
        height: 500px;
        border: 1px solid;
      }
    }
    </style>
    
    
    展开全文
  • 微信公众号:数据皮皮侠如果你觉得该公众号对你有帮助,欢迎关注、推广和宣传内容目录:python matplotlib 绘制双Y轴曲线图双X轴的可以理解为共享y轴1.ax1=ax.twiny()2.ax1=plt.twiny()双Y轴的可以理解为共享x轴1....

    微信公众号:数据皮皮侠如果你觉得该公众号对你有帮助,欢迎关注、推广和宣传

    内容目录:python matplotlib 绘制双Y轴曲线图

    双X轴的
    可以理解为共享y轴

    1.ax1=ax.twiny()
    2.ax1=plt.twiny()

    双Y轴的
    可以理解为共享x轴

    1.ax1=ax.twinx()
    2.ax1=plt.twinx()

    自动生成一个例子

     1# Python生成Y双坐标的图 2x = np.arange(0., np.e, 0.01) 3y1 = np.exp(-x) 4y2 = np.log(x) 5fig = plt.figure() 6ax1 = fig.add_subplot(111) 7ax1.plot(x, y1) 8ax1.set_ylabel('Y values for exp(-x)') 9ax1.set_title("Double Y axis")10ax2 = ax1.twinx()  # this is the important function11ax2.plot(x, y2, 'r')12ax2.set_xlim([0, np.e])13ax2.set_ylabel('Y values for ln(x)')14ax2.set_xlabel('Same X for both exp(-x) and ln(x)')15plt.show()

    9afcd8c07a37f1894439ed4436232de5.png

    例子:画了一个双y轴坐标的图表

     1# -*- coding: utf-8 -*- 2 3#调用包 4import pandas as pd  5import numpy as np  6import matplotlib.pyplot as plt 7 8#读取文件 9io=r'E:\工作\专项\白骑士数据验证\白骑士数据汇总表.xlsx'10yinka=pd.read_excel(io,sheet_name='YINKA_sample')11bqs=pd.read_excel(io,sheet_name='BQS_result')12yinka_bqs=pd.merge(yinka,bqs,left_on='no',right_on='no',how='inner')1314#绘图15fig,ax=plt.subplots(1,1,figsize=(20300))16ax.grid()                  #画网格17x=total.index-1                 18#为什么+1,因为对不齐,所以使用时根据情况编写19y=total['var1']20ax.plot(x,y,'k--o',alpha=0.5)   #画折线图21ax.set_xlim([0,16])             22#设置x轴的取值范围          这个可以让x轴与y轴的起点一致23ax.set_xticks(np.arange(0,16))  #设置x轴的刻度范围24ax.set_xticklabels(np.arange(0,16),rotation=3025#设置x轴上的刻度2627ax.set_ylim([0,1800])           #同理y轴数值范围28ax.set_yticks(range(0,1800,300))#设置y轴的刻度范围29ax.set_yticklabels(range(0,1800,300))#设置y轴上的刻度3031ax.legend(loc='upper left')     #设置ax子图的图例(legend)32#新知识点33for a,b in zip(x,y):            #设置注释 zip函数是对应关系34    ax.text(a,b,b,ha='center',va='bottom',fontsize=15)35#重点36ax1=ax.twinx()                  37#这个是能够实现双y轴的重点,共享x轴;还有一种是双x轴的图表换成ax.twiny()38y1=total[['adopt','reject']]39y1.plot.bar(ax=ax1,alpha=0.5)  40#这个是matplotlib中条形图的绘制方法,如果使用seaborn绘制方法使用sns.barplot()函数,需要调整很多细节41#这里只设置了y轴的刻度,x轴的刻度设置了一下偶尔会出现失败,值得注意的是要将数据对齐42ax1.set_ylim([0,1800])43ax1.set_yticks(range(0,1800,300))44ax1.set_yticklabels(range(0,1800,300))45for e,f,w in zip(data_.index,data_[0],data_[1]):46    ax1.text(e-1,f,f,ha='center',va='bottom',fontsize=10,color='b')47    ax1.text(e-1,w,w,ha='center',va='bottom',fontsize=10,color='g')48ax1.legend(loc='best')49plt.show()         #养成习惯这个最好写一下#50#保存图片51plt.savefig('path')  #图表输出到本地

    结果显示:

    28a17aa796e36751628e274e5d7c55bd.png

    下次给出封面的数据和python代码,敬请期待!

    展开全文
  • 项目中使用了 百度Echarts根据项目需要,要实现Y轴展示柱状图...what ~~)类似官网这个例子闲言碎语不要讲,开始正文,开发中问题总结①x轴 文字太长 展示不全解决方法:(大致思路就是让文字倾斜)grid: {y2: 140},...

    项目中使用了 百度Echarts

    根据项目需要,要实现双Y轴展示柱状图

    最终的样子是这样的

    5123433d36f8

    最终效果

    实现过程中遇到的问题

    一开始是这个样子的(因为没有设置max min,天真的以为只要有数据,就会系统均分,万万没想到,出现左右刻度不重合现象,what ~~)

    5123433d36f8

    类似官网这个例子

    闲言碎语不要讲,开始正文,开发中问题总结

    ①x轴 文字太长 展示不全

    解决方法:(大致思路就是让文字倾斜)

    grid: {

    y2: 140

    },

    xAxis: {

    data: [],

    axisLabel: {

    interval: 0,//横轴信息全部显示

    rotate: -30,//-30度角倾斜显示

    }

    },

    ②对于动态数据,如何定义右侧Y轴的刻度

    解决方法: 翻来覆去,终于在github 的issue上看到,貌似echart3.0需要自己去定义 max,min,interval。系统不再自动计算适配。

    既然这样,那就计算呗,根据项目需要,在这一块

    yAxis:[

    {......},

    {

    type: 'value',

    name: '销售额(元)',

    min: 0,

    max: max, // 计算最大值

    interval: Math.ceil(max / 5), // 平均分为5份

    axisLabel: {

    formatter: '{value}'

    }

    ]

    小插曲:由于两侧都是动态数据,测试时候发现,左侧Y轴有时候会变为6份或者更多份。妹的,那就乱套了,左右Y轴不对应。那就固定起来,将左侧也固定为 5份。具体方法同上(计算max min interval)

    基本就能解决了

    that's all

    番外篇:

    控制图表与外部容器之间的间距

    5123433d36f8

    image.png

    options : {

    //...

    grid : {

    left: 40, //距离容器左边界40像素

    right: 30 //距离容器右边界30像素

    }

    }

    实现图表的宽度随着屏幕宽度的改变而改变

    在setoption之后添加这段代码:

    window.onresize = myChart.resize;

    展开全文
  • echarts双Y轴刻度不对齐以及有负数时x轴线不太底部问题 1、遇到的问题 双Y轴刻度不对齐以及x轴不在底部问题 2、解决方法 1)解决x轴线不在底部问题 在axisLine里面设置onZero属性 2)解决对齐问题 问题描述: 1、...
  • 1.在实际项目中我用到的是时间轴 //获取Y轴的刻度范围 var rangeY = this.myChart.getModel().... //获取X轴的刻度范围 var rangeX = this.myChart.getModel().getComponent('xAxis').axis.scale._extent; ...
  • 80, top: -5, feature: { saveAsImage: {} } }, // {name: '--',type: 'line',data:[0,0,0···]} series: allRealData } // true 图数据不叠加 this.myChart.setOption(option, true) } 以上这篇实现ECharts双Y...
  • Echarts双Y柱状图

    千次阅读 2019-04-22 13:53:51
    var option = { title: { text: '一周推送及完成率', x:'center', y:'top', align:'center', text...
  • echarts双Y横向树状图实现(两个类目) 效果演示效果演示(一个大类有好几个小类,等于就是小类的类目都不同) 首先设置X为数值,Y为类目。 Y设置为数组,设置两个,其中小类的Y进行隐藏(注意隐藏...
  • Echarts 实现双X轴标签不等分对应

    千次阅读 2020-03-23 17:56:21
    Echarts 默认双X轴实现的效果是等分在X轴的,没有对应关系,这里’伪’实现了不等分的情况。 实现思路: 两个网格 grid; 底部网格也是柱状图,计算要包含的柱条所占总数的百分比,设置 barWidth再加些样式,即可...
  • 图说效果Echarts编辑器效果option代码option={title: {text: "某地区蒸发量和降水量",subtext: "Y 折线图柱状图混搭"},legend: {data: ["蒸发量", "降水量"]},xAxis: [{type: "category",axisLine: {onZero: ...
  • Echarts双Y轴问题+ X轴传入一个数据展示5个刻度传入一天的数据,默认展示了5天的数据双Y轴,左右2边被切成不同的份数,左边 5个刻度,右边4个刻度传入左边的做大值,最小值 然后 最大值最小值赋给 max min ...
  • echarts双坐标轴在开发中并不是十分常见,双坐标轴分为X轴双坐标和Y轴双坐标。相对于X轴而言,Y轴的双坐标轴更为常见。本文详细介绍Y轴实现双坐标轴实现方法以及参数详解!实现效果如图:完整代码:var BarBOX1 = ...
  • 而logspace()与之功能类似 logspace(a,b)生成一个由在10^a和10^b(10 的 N 次幂)之间的 50 个对数间距点组成的行向量y 比如: 我们接下来分别画出线性坐标图(对比),x轴半对数图,y轴半对数图,对数图。...
  • Matlab绘制双x双y轴/单x双y轴/双x单y轴图,看别的教程是用line语句,但其实用plot和scatter都是可以(自己已经实践)。绘制轴数量、轴位置(XAxisLocation和YAxisLocation)、轴...Matlab绘制双x轴-双y轴图形攻略&g...
  • 1. echarts 在线编辑:点击 2. 参考配置 let colors = ['#5793f3', '#d14a61', '#675bba']; option = { color: colors, tooltip: { trigger: 'none', axisPointer: { type: 'cross' ...
  • 公司业务需要需要做一个双X双Y的图形报表,之前研究过很多例子结合把双X轴不等分显示; 1、有曲线图、有柱状图 2、X轴分组合并显示 3、可自行修改显示数值和比例在一个图上
  • echarts使用心得, 双X轴, 警戒线

    千次阅读 2019-08-20 15:25:51
    echarts相关使用经验 前段时间做一个关于图表的需求,遇到好几个坑,撸了好长时间echarts文档和相关代码, 在这里做一下自己的总结, 希望也能帮到其他的朋友, 废话不多说, 直接上代码; var myChart = echarts.init...
  • export default {// 父组件传递过来的数据 (两种方式声明:1.数组 2.对象)props: {titleText: {type:String,default: () => {return ''}}, // 图表名称isPercentage: {type:Boolean}, // 是否是%// 原来的数组...
  • 图说效果Echarts编辑器效果option代码option={title: {text: "某地区蒸发量和降水量",subtext: "Y 折线图柱状图混搭"},legend: {data: ["蒸发量", "降水量"]},xAxis: [{type: "category",axisLine: {onZero: ...
  • 使用Echarts完成y折线图

    千次阅读 2020-06-19 11:38:10
    y轴,轴上带单位,x轴是时间轴,自定义tooltip显示 后台数据是二维数组,x轴不传固定值 时间处理,格式化,初始化2020-1-1 -->2020-01-01
  • } }, // 图例相关的东西 legend: { x: 'right', icon: 'rect', padding: [0, 50, 0, 0], itemHeight: 12, // 改变icon大小 textStyle: { fontSize: 12 }, top: '20', data: [ '事故数量(起)趋势', '环比增长率(%)',...
  • 由于要实现y,且有三种不同数据(也就是多y),需要隐藏其中一条y(包括刻度线,网格)。 直接上代码: yAxis: [ { type: 'value', name: '**数', min: 0, max: 720, interval: 5, position: "left",
  • 抬起按钮SB1,步进电机停止运动,摁下按钮SB2,启动并反转,抬起按钮SB2,步进电机停止运动二,完成任务要求:根据控制要求做出i/o分配表,画出电气控制原理图按照电气原理图连接好线路添加工艺对象“”组态参数...
  • 双X轴的可以理解为共享y轴ax1=ax.twiny() ax1=plt.twiny()双Y轴的可以理解为共享x轴ax1=ax.twinx() ax1=plt.twinx()自动生成一个例子x = np.arange(0., np.e, 0.01) y1 = np.exp(-x) y2 = np.log(x) fig = plt....
  • X轴的格式为log形式。图形绘制选择XYY,使用Plot菜单下的Multi-Panel/Axis类别中的2Ys Column-LineSymbol模板来绘图。此时已经成功一半了。格式设置曲线格式双击图形,打开Plot Properties对话框,...
  • 1.Y显示数量和占比 app.title = '坐标刻度与标签对齐'; option = { title : { //标题 x : 'center', y : 5, text : '数量和占比图' //换行用 \n }, legend : { //图标 ...

空空如也

空空如也

1 2 3
收藏数 42
精华内容 16
关键字:

echarts双x轴