gpt4 book ai didi

javascript - 分离或划分值并根据它们制作饼图

转载 作者:太空宇宙 更新时间:2023-11-04 16:17:04 25 4
gpt4 key购买 nike

我从后端数据库服务器获取了一些数据,它返回以下详细信息。

[{ "Year": 2014, "Name": "A", "Values": 18 },{ "Year": 2014, "Name": "B", "Values": 16 },{ "Year": 2015, "Name": "D", "Values": 20},{ "Year": 2015, "Name": "C", "Values": 0 },{ "Year": 2015, "Name": "A", "Values": 0 },{ "Year": 2016, "Name": "D", "Values": 19 }]

但我想要的是,首先根据每个单独数组或数组列表中的年份根据长度对数组进行划分/分组,然后想将它们用于饼图。有人可以帮我吗?

最佳答案

如果您使用的是 Google 图表,请参阅下面的代码片段(它会导致跨源错误,但这是因为 google 加载程序,它应该仍然有效,只需展开代码片段),或者至少将其用作其他示例饼图实现:

<html>
<head>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);

var dbData = [{
"Year": 2014,
"Name": "A",
"Values": 18
}, {
"Year": 2014,
"Name": "B",
"Values": 16
}, {
"Year": 2015,
"Name": "D",
"Values": 20
}, {
"Year": 2015,
"Name": "C",
"Values": 0
}, {
"Year": 2015,
"Name": "A",
"Values": 0
}, {
"Year": 2016,
"Name": "D",
"Values": 19
}];

var yearFieldName = "Year";
var nameFieldName = "Name";
var valuesFieldName = "Values";


function createPieChartData(data, keyTitle, valueTitle) {
var yearGroups = {};
var result = [];
result.push([keyTitle, valueTitle]);

var year = null;
//summing values of records in each year grouped by year ()
for (var i = data.length - 1; i >= 0; i--) {
year = data[i][yearFieldName];
if (typeof year === "number" || typeof year === "string") {
if (typeof yearGroups[year] === "undefined") {
yearGroups[year + ""] = 0;
}

yearGroups[year] += data[i][valuesFieldName];
} else {
//do whatever here, for example:
//throw new Error("some bad data type of 'Year' field passed from DB");
}
}

for(var y in yearGroups) {
result.push([y, yearGroups[y]]);
}

return result;
}

function drawChart() {

var data = google.visualization.arrayToDataTable(createPieChartData(dbData, "Year", "Sum of Values"));

var options = {
title: 'Values for each year:'
};

var chart = new google.visualization.PieChart(document.getElementById('piechart'));

chart.draw(data, options);
}
</script>
</head>
<body>
<div id="piechart" style="width: 900px; height: 500px;"></div>
</body>
</html>

关于javascript - 分离或划分值并根据它们制作饼图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40997848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com