如何配置ECharts直接使用Float64Array作为数据输入
如何让ECharts直接支持Float64Array类型的数据
我尝试了以下代码,但图表未渲染:
option = { xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: { type: 'value' }, series: [ { data: new Float64Array([150, 230, 224, 218, 135, 147, 260]), type: 'line', seriesLayoutBy: 'row', dimensions: [{ type: 'float' }] } ] };
这段代码里的Float64Array数据来自WASM函数的输出,我知道可以用Array.from()转换后正常渲染,但想了解如何配置ECharts直接使用Float64Array类型的数据。
解决方案
ECharts默认不直接支持TypedArray(包括Float64Array)作为数据源,不过可以通过以下方式实现直接使用:
利用dataset.transform自动转换
使用ECharts的dataset.transform功能,在数据进入图表渲染流程前自动将Float64Array转为普通数组,无需手动调用Array.from():option = { dataset: { source: new Float64Array([150, 230, 224, 218, 135, 147, 260]), transform: { type: 'custom', transform: function(source) { return Array.from(source); } } }, xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: { type: 'value' }, series: [ { type: 'line', seriesLayoutBy: 'row' } ] };注意事项
之前配置里的dimensions: [{ type: 'float' }]无法让ECharts识别TypedArray,这个配置仅用于定义数据字段的类型和名称,对数据源的类型没有适配作用。
如果不需要全局适配,第一种方式是最简便且安全的选择,既保留了WASM输出的原始数据类型,又能让ECharts正常渲染。
内容的提问来源于stack exchange,提问作者januw a
相关产品推荐
相关产品推荐

