echart数据集时间类型X轴双折现只出现一个

最近学习echart5的数据集时,发现一个问题,看看有没有谁发现类似问题或找到相关的解决办法;


option = {
  legend:{},
  dataset: {
     source: [
            ['time ', '2015', '2016'],
            ['2023-09-05T08:30:32.155Z','714.34', '775.78'],
            ['2023-09-05T08:30:30.155Z','539.61', '343.92'],
            ['2023-09-05T08:30:28.155Z','889.47', '243.84'],
            ['2023-09-05T08:30:26.155Z','393.11', '775.78'],
            ['2023-09-05T08:30:24.155Z','550.51', '345.42']
           ]
  },
  xAxis: { type: 'time', },
  yAxis: {},
  series: [{ type: 'bar' }, { type: 'bar' }]
};


问题:
本意是想做一个能实时变化的双折线,但参考数据集定义方法,仅会出现一条线;但将X轴的type修改为category,则出现双线,尝试过定义“维度”,但没什么效果,看有没有人遇到同样的问题

【以下回答由 GPT 生成】

问题原因:ECharts中的数据集(dataset)组件对于时间类型的数据需要进行特殊处理,才能正确显示在折线图中。这是因为时间类型的数据在数据集中需要进行排序和聚合。

解决方案: 1. 首先,需要将时间类型的数据转换为 JavaScript 的 Date 对象。可以使用 new Date() 方法或者 moment.js 库来实现。

const data = [
  ['time', '2015', '2016'],
  [new Date('2023-09-05T08:30:32.155Z'), '714.34', '775.78'],
  [new Date('2023-09-05T08:30:30.155Z'), '539.61', '343.92'],
  [new Date('2023-09-05T08:30:28.155Z'), '889.47', '243.84'],
  [new Date('2023-09-05T08:30:26.155Z'), '393.11', '775.78'],
  [new Date('2023-09-05T08:30:24.155Z'), '550.51', '345.42']
];
  1. 然后,需要在数据集中为时间类型的列定义维度(dimension)。维度是数据集中的一列,用于定义数据的维度。可以将维度简单理解为折线图中的 X 轴数据。
option = {
  legend: {},
  dataset: {
    source: data,
    dimensions: ['time', '2015', '2016']
  },
  xAxis: { type: 'time' },
  yAxis: {},
  series: [{ type: 'line' }, { type: 'line' }]
};

注意事项: - 在 ECharts 中,当数据集中的某列被设置为维度时,该列的数据将会作为 X 轴的数据,其他列的数据将会作为 Y 轴的数据。 - 在定义维度时,如果是时间类型的列,则需要在数据集中将该列的数据转换为 JavaScript 的 Date 对象。 - 通过设置不同的 series 类型,可以实现不同类型的图表,例如折线图(line)或柱状图(bar)。

希望以上解决方案能够帮助到您,如有其他问题,请随时提问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

该方法不行,最终结果仍是只有一条线;

img