问题描述
此处的所有示例(https://echarts.apache.org/examples/)都有硬编码的“系列”对象:
series: [
{
name: 'Forest',type: 'bar',data: [320,332,301,334,390]
},{
name: 'Steppe',data: [220,182,191,234,290]
},{
name: 'Desert',data: [150,232,201,154,190]
}]
我想动态创建它们。像这样:
for(x=0; x < myData.length; x++){
createSeries(myData[x]);
}
有可能吗?
解决方法
好的。只需将生成器传递给series属性:
var seriesData = ['Forest','Steppe','Desert'].map(name => {
return {
name: name,type: 'bar',data: Array.from({length: 6},() => Math.floor(Math.random() * 100)),}
})
var option = {
//[...]
series: seriesData
//[...]
}
var myChart = echarts.init(document.getElementById('main'));
var seriesData = ['Forest','Desert'].map(name => {
return {
name: name,}
})
var option = {
title: {
text: 'ECharts'
},tooltip: {},legend: {
data:['Label']
},xAxis: {
data: ["Category1","Category2","Category3","Category4","Category5","Category6"]
},yAxis: {},series: seriesData
};
myChart.setOption(option);
<script src="https://cdn.jsdelivr.net/npm/echarts@4.8.0/dist/echarts.min.js"></script>
<div id="main" style="width: 600px;height:400px;"></div>
P.S。对于运行时的更改系列,请使用myChart.setOption({series: seriesData})