Echart踩坑之多x轴合并问题

使用Echart的过程中,碰到过这样的一个问题有以下几组数据:

[['2020-10-20 15:03:30',5.0],['2020-10-21 15:03:30',7.0],['2020-10-20 15:05:30',8.0],['2020-10-23 15:03:30',9.0]]

[['2021-10-20 15:03:30',5.0],['2021-10-21 15:03:30',7.0],['2021-10-20 15:05:30',8.0],['2021-10-23 15:03:30',9.0]]

发现上面的数据时间都不一样,当出现这种情况时,xAxis的data可以不用设置了,直接在series里设置,如下:

series:[{
    name: 'pn',
    type: 'line',
    data: [['2020-10-20 15:03:30',5.0],['2020-10-21 15:03:30',7.0],['2020-10-20 15:05:30',8.0],['2020-10-23 15:03:30',9.0]],
    symbol: 'circle',
    smooth: true,
    hoverAnimation: true,
    symbolSize: '3',
    animation: false
};

{

    name: 'pn1',
    type: 'line',
    data: [['2021-10-20 15:03:30',5.0],['2021-10-21 15:03:30',7.0],['2021-10-20 15:05:30',8.0],['2021-10-23 15:03:30',9.0]],
    symbol: 'circle',
    smooth: true,
    hoverAnimation: true,
    symbolSize: '3',
    animation: false,
};

]

还有一种情况 有时候x轴的刻度可能不是我们想要的。例如 把时间格式化只要年,这个时候x轴的刻度顺序混乱的情况。这个时候,我们可以添加时间间隔,让其自动生成x轴刻度

xAxis: [{
         type:'category',  
         maxInterVal: 3600 * 24 * 1000,//一天间隔
         minInterVal: 3600 * 24 * 1000,//一天间隔
         axisLabel: {
                    hideOverlap: true,
                    formatter:function (dates) {
                        //格式化 x轴显示的值
                    }

                }
            }],
series:[{
    name: 'pn',
    type: 'line',
    data: [['2020-10-20 15:03:30',5.0],['2020-10-21 15:03:30',7.0],['2020-10-20 15:05:30',8.0],['2020-10-23 15:03:30',9.0]],
    symbol: 'circle',
    smooth: true,
    hoverAnimation: true,
    symbolSize: '3',
    animation: false
};

{

    name: 'pn1',
    type: 'line',
    data: [['2021-10-20 15:03:30',5.0],['2021-10-21 15:03:30',7.0],['2021-10-20 15:05:30',8.0],['2021-10-23 15:03:30',9.0]],
    symbol: 'circle',
    smooth: true,
    hoverAnimation: true,
    symbolSize: '3',
    animation: false,
};

]

ECharts是一个强大的数据可视化库,它支持多种图表类型,并允许用户自定义各种属性,包括x的数据来源。在ECharts中,X的数据通常来自于数据集中的字段或者是一维数组。如果你想让X显示来自不同来源的数据,你可以通过以下步骤实现: 1. **配置xAxis**: 首先,在ECharts配置项中,你需要为xAxis设置数据源。这可以是一个简单的数组、JSON对象数组,或者是异步加载的数据。 ```javascript var option = { xAxis: { data: ['类别A', '类别B', '类别C'], // 假设这是一个静态数组 type: 'category', // 如果需要,可以设置x类型 splitLine: { show: false }, // 可选,控制是否显示分割线 }, series: [...], // 系列数据,这里的x值对应xAxis的data }; ``` 2. **动态数据源**:如果你的数据源是异步的,比如从服务器获取,可以使用`echarts.setOption`在数据准备好后再更新图表: ```javascript function loadData() { axios.get('/api/data') .then(response => { var data = response.data; // 假设这是包含x数据的对象数组 option.xaxis.data = data.map(item => item.category); // 更新x数据 echarts.getInstanceByDom(chartId).setOption(option); }) .catch(err => console.error(err)); } // 初始化图表并设置监听数据加载事件 loadData(); ``` 3. **混合使用不同数据源**:在某些场景下,你可能希望x既有固定数据又有动态数据,这时可以在xAxis的data中混合数组和其他类型的值: ```javascript option.xAxis.data = [ '静态数据1', '静态数据2', [asyncData1, asyncData2], // 异步获取的数据作为单独元素 ]; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值