let chartdata={ "grid_sun_of_current_vector": { "time_stamp": [ "2023-07-24 10:04:20", "2023-07-24 10:04:10" ], "value": [ 0, 0 ] }, "grid_total_active_power": { "time_stamp": [ "2023-07-24 10:04:20", "2023-07-24 10:04:10" ], "value": [ 31.3, 31.3 ] }, "grid_total_reactive_power": { "time_stamp": [ "2023-07-24 10:04:20", "2023-07-24 10:04:10" ], "value": [ 0, 0 ] } }; let namedata=[ { "name": "三相电流矢量和", "field": "grid_sun_of_current_vector" }, { "name": "总有功功率", "field": "grid_total_active_power" }, { "name": "总无功功率", "field": "grid_total_reactive_power" }, { "name": "总视在功率", "field": "grid_total_apparent_power" }, { "name": "组合有功总电能", "field": "grid_combed_active_power_energy" }, { "name": "正向有功电能", "field": "grid_forward_active_power_energy" }, { "name": "反向有功电能", "field": "grid_reverse_active_power_energy" } ];chartdata作为echarts的折线图的数据源,chartdata的属性名为各个折线的名称,chartdata的time_stamp为X轴数据,chartdata的value为Y轴数据,echarts显示时chartdata的属性名转换为namedata的name值
时间: 2023-08-12 17:06:21 浏览: 87
要将 `chartdata` 中的属性名转换为 `namedata` 中的 `name` 值,并作为 ECharts 折线图的数据源,你可以按照以下步骤进行操作:
1. 创建一个新的对象,用于保存转换后的数据:
```javascript
var transformedData = {};
```
2. 遍历 `chartdata` 对象的属性,将属性名转换为对应的 `namedata` 中的 `name` 值:
```javascript
for (var prop in chartdata) {
if (chartdata.hasOwnProperty(prop)) {
var fieldName = prop;
var name = namedata.find(function (item) {
return item.field === fieldName;
}).name;
transformedData[name] = chartdata[prop];
}
}
```
在上述代码中,我们使用 `find` 方法从 `namedata` 中找到与当前属性名匹配的对象,然后将其对应的 `name` 值作为新对象的属性名,并将原始数据赋值给相应的属性。
3. 使用转换后的数据源 `transformedData` 来配置 ECharts 折线图:
```javascript
// 创建一个 ECharts 实例
var chart = echarts.init(document.getElementById('chart'));
// 配置项
var option = {
// 图表的标题
title: {
text: '折线图',
},
// 图表的提示框
tooltip: {
trigger: 'axis',
},
// 图表的图例
legend: {
data: Object.keys(transformedData),
},
// 图表的 x 轴数据
xAxis: {
type: 'category',
data: transformedData[Object.keys(transformedData)[0]].time_stamp,
},
// 图表的 y 轴数据
yAxis: {
type: 'value',
},
// 图表的系列数据(折线)
series: Object.keys(transformedData).map(function (name) {
return {
name: name,
type: 'line',
data: transformedData[name].value,
};
}),
};
// 使用配置项显示图表
chart.setOption(option);
```
这样,你就可以使用经过属性名转换后的数据源 `transformedData` 来绘制 ECharts 折线图了。图例的名称将会根据 `namedata` 中的 `name` 值显示。确保引入了正确的 ECharts 库,并将上述代码放置在适当的位置,就能够正确显示折线图了。
阅读全文