【ECharts】X轴

目录

x轴名称

x轴文本倾斜

x轴文本竖直展示

 x轴隔一个换行

x轴换行展示

x轴数量过多,全部显示

x轴数量过多,间隔七条

x轴坐标线


x轴名称

option = {
  xAxis: {
    type: 'category',
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
    name:"一周",//名称。
    nameLocation:'end',//名称显示位置。
  },
  yAxis: {
    type: 'value'
  },
  series: [
    {
      data: [150, 230, 224, 218, 135, 147, 260],
      type: 'line'
    }
  ]
};

x轴文本倾斜

option = {
  xAxis: {
    type: 'category',
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
    axisLabel : {
        interval:0, //刻度标签的显示间隔
        rotate:"45"
    }
  },
  yAxis: {
    type: 'value'
  },
  series: [
    {
      data: [150, 230, 224, 218, 135, 147, 260],
      type: 'line'
    }
  ]
};

x轴文本竖直展示

option = {
    xAxis: {
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
        axisLabel: {  
          interval: 0,  
          formatter:function(value)  {  
              return value.split("").join("\n");  
          }  
        }  
    },
    yAxis: [
        {
            name: '次数',
            type: 'value',
        }, 
    ],
    series: [
        {
            type: 'line',
            data: [150, 230, 224, 218, 135, 147, 260],
            
        },
    ]
};

 x轴隔一个换行

option = {
    xAxis: {
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
        axisLabel : {
          clickable:true,//并给图表添加单击事件  根据返回值判断点击的是哪里
          interval : 0,
          formatter : function(params,index){
            if (index % 2 != 0) {
                return '\n\n' + params;
            }
            else {
                return params;
            }
          }
        
        }
    },
    yAxis: [
        {
            name: '次数',
            type: 'value',
        }, 
    ],
    series: [
        {
            type: 'line',
            data: [150, 230, 224, 218, 135, 147, 260],
            
        },
    ]
};

x轴换行展示

option = {
    xAxis: {
        type: 'category',
        data: ['MonMonMon', 'TueTueTue', 'WedWedWed', 'ThuThuThu', 'FriFriFri', 'SatSatSat', 'SunSunSun'],
        axisLabel : {
          formatter : function(params){
            var name = "";// 最终
            var num = params.length;// 标签个数
            var col = 3;// 每行显示字个数
            var row = Math.ceil(num / col);// 显示几行,向上取整
  
            // 条件等同于row>1
            if (num > col) {
              for (var p = 0; p < row; p++) {
                var tempStr = "";// 表示每一次截取的字符串
                var start = p * col;// 开始截取的位置
                var end = start + col;// 结束截取的位置
                // 此处特殊处理最后一行的索引值
                if (p == row - 1) {
                  // 最后一次不换行
                  tempStr = params.substring(start, num);
                } else {
                  // 每一次拼接字符串并换行
                  tempStr = params.substring(start, end) + "\n";
                }
                name += tempStr;// 最终拼成的字符串
                }
        
            } else {
              name = params; // 将旧标签的值赋给新标签
            }
            return name
          }
        }
    },
    yAxis: [
        {
            name: '次数',
            type: 'value',
        }, 
    ],
    series: [
        {
            type: 'line',
            data: [150, 230, 224, 218, 135, 147, 260],
            
        },
    ]
};

x轴数量过多,全部显示

正常情况下会出现一个隔一个的情况。

option = {
  xAxis: {
    type: 'category',
    data: ['星期一我很开心', '星期二我很开心', '星期三我很开心', '星期四我很开心', '星期五我很开心', '星期六我很开心', '星期日我很开心','星期一我很开心', '星期二我很开心', '星期三我很开心', '星期四我很开心', '星期五我很开心', '星期六我很开心', '星期日我很开心']
  },
  yAxis: {
    type: 'value'
  },
  series: [
    {
      data: [120, 200, 150, 80, 70, 110, 130,120, 200, 150, 80, 70, 110, 130],
      type: 'bar'
    }
  ]
};

期望效果:

 

option = {
  xAxis: {
    type: 'category',
    axisLabel:{interval: 0},
    data: ['星期一我很开心', '星期二我很开心', '星期三我很开心', '星期四我很开心', '星期五我很开心', '星期六我很开心', '星期日我很开心','星期一我很开心', '星期二我很开心', '星期三我很开心', '星期四我很开心', '星期五我很开心', '星期六我很开心', '星期日我很开心']
  },
  yAxis: {
    type: 'value'
  },
  series: [
    {
      data: [120, 200, 150, 80, 70, 110, 130,120, 200, 150, 80, 70, 110, 130],
      type: 'bar'
    }
  ]
};

x轴数量过多,间隔七条

option = {
    xAxis: {
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun','Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun','Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun','Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun','Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun','Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
        axisLabel: {
            interval:7,//interval为x轴两相邻数据之间所包含数据条数
            show: true,
            textStyle: {
              color: "#a9a9a9", //更改坐标轴文字颜色
              fontSize: 10 //更改坐标轴文字大小
            },
            showMinLabel: true,//显示最小值
            showMaxLabel: true,//显示最大值
        },
    },
    yAxis: [
        {
            type: 'value',
        }, 
    ],
    series: [
        {
            type: 'line',
            data: [150, 230, 224, 218, 135, 147, 260,150,110,122,230, 224, 218, 135, 147, 260,150, 230, 224, 218, 135, 147, 260,150, 230, 224, 218, 135, 147, 260,150, 230, 224, 218, 135, 147, 260,150, 230, 224, 218, 135, 147, 260],
            
        },
    ]
};

x轴坐标线

option = {
    xAxis: {
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
        splitLine: { 
            show: true,
            lineStyle:{
                color:['red','blue'],
            }
        }
    },
    yAxis: {
        type: 'value',
        splitLine: { 
            show: false
        }
    }, 
    series: [
        {
            type: 'line',
            yAxisIndex: 0,
            data: [150, 230, 224, 218, 135, 147, 260],
            
        },
    ]
};

### ECharts X配置详解 #### 基本概念 在ECharts中,`xAxis`用于定义图表中的横坐标。无论是折线图、柱状图还是其他类型的图表,`xAxis`都是不可或缺的一部分[^4]。 #### 属性说明 - **type**: 定义了坐标的类型,常见的有`'value'`(数值型)`'category'`(类目型)等。 - **data**: 当`type`设为`'category'`时,此属性用来指定分类数据;如果是数值,则不需要设置该参数。 - **axisLabel**: 可以自定义标签样式,比如旋转角度(`rotate`)、间隔(`interval`)以及颜色(`color`)等。 - **splitLine**: 控制网格线的显示与否及其风格。 对于更复杂的场景如需实现二级分组效果,在实际应用过程中可以通过组合多个系列(series)来模拟这种结构,并通过调整各个子项的位置达到视觉上的层次感[^2]。 #### 实例代码 下面给出一段简单的JavaScript代码片段作为示例: ```javascript var chartDom = document.getElementById('main'); var myChart = echarts.init(chartDom); var option; option = { xAxis: [ { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], axisLabel: { interval:0, rotate:45, color:'#333' } }, // 添加第二个X用于创建双层效果 { type : 'category', position : 'bottom', offset: 20, // 调整位置使其不重叠 splitLine:{show:false}, axisTick:{show:false},//隐藏刻度线 axisLine:{show:false}//隐藏线 } ], yAxis: { type: 'value' }, series: [{ name:'销量', type:'bar', barWidth : '60%', data:[120, 200, 150, 80, 70, 110, 130], markPoint : { data : [ {type : 'max', name: '最大值'}, {type : 'min', name: '最小值'} ] }, markLine : { data : [ {type : 'average', name: '平均值'} ] } }] }; myChart.setOption(option); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宾果的救星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值