我有两个数据集,希望以两个单独的折线图形式显示在eCharts画布上:
使用下面的代码,将显示两个折线图,但是由于数据集具有不同的数组长度,因此收入折线图被挤压到画布的左侧,而股价图则以全宽度正确显示。同样,x轴彼此不对齐,因为日期范围不会完全重叠(季度数据早于价格数据,请参见下面的示例)。
第一个长数据集包含每日股票价格,如下所示:
var dailyStockprices = [123,124,125, ... etc] // array length 600
var dailyDates = ["2019-01-02","2019-01-03","2019-01-04", ... etc] // array length 600
第二个非常短的数据集,包含每季度收入,如下所示:
var quarterlyRevenues = [123,124,125, ... etc] // array length 20
var quarterlyDates = ["2018-09-30","2018-12-31","2019-03-31", ... etc] // array length 20
eCharts代码如下:
var myChart = echarts.init(document.getElementById('mainchart1'));
option = {
xAxis: [{
type: 'category',
data: dailyDates
}, {
type: 'category',
data: quarterlyDates
}],
yAxis: [{
type: 'value'
}, {
type: 'value'
}],
series: [{
data: dailyStockprices,
type: 'line',
yAxisIndex: 0
}, {
data: quarterlyRevenues,
type: 'line',
yAxisIndex: 1
}]
};
myChart.setOption(option);
这是一个简化的 JSFiddle示例:https://jsfiddle.net/frankmarks/szm1f20j/9/
如何使两个折线图在同一画布上正确显示,即全宽,并且两个x轴都对齐?
答案 0 :(得分:0)
经过研究,我找到了解决方案,将轴类型设置为“时间”而不是“类别”,它会自动对齐轴对齐并完全回答我的问题。
有关如何格式化数据的更多说明,请参见此处的eCharts文档:https://ecomfe.github.io/echarts-doc/public/en/option.html#series.data
摘录:
当维度对应于时间轴(类型为“时间”)时,值可以为:
例如:在chrome中,新日期('2012-01-01')被视为UTC的2012年1月1日,而新日期('2012-1-1')和新日期('2012/01 / 01')在当地时区视为2012年1月1日。在Safari中不支持新的Date('2012-1-1')。
因此,如果您打算执行新的Date(dateString),则强烈建议使用时间解析库(例如,时刻)或使用echarts.number.parseDate。