gpt4 book ai didi

javascript - 如何在图表中显示数据?

转载 作者:行者123 更新时间:2023-12-02 22:54:53 25 4
gpt4 key购买 nike

嘿,实际上我正在从数据库中检索一些数据数据是这样的格式

id: "5"
p_amount: "120"
p_date: "09/20/2019"
p_id: "12345"
p_method: "Bank"
p_status: "OPEN"

这就是我在ajax响应中所做的,我将日期月份转换为其名称

           success: function(response){
var obj=JSON.parse(response);
if(obj!=""){
$.each(obj, function(i, item) {
var selectedMonthName = months[obj[i].p_date.slice(0,2)-1];

});
}

现在我有另一个名为 main.js 的文件,并且我用 javascript 制作了一个图表

(function ($) {
// USE STRICT
"use strict";


try {
//WidgetChart 1
var ctx = document.getElementById("widgetChart1");
if (ctx) {
ctx.height = 115;
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July','August','September','October','November','December'],
type: 'line',
datasets: [{
data: [0, 0, 0, 0, 0, 0, 0,0,0,0,0,0], //Here data should be added e.g, if month is september the value p_amount should add here in 8th index
label: 'Dataset',
backgroundColor: 'rgba(255,255,255,.1)',
borderColor: 'rgba(255,255,255,.55)',
},]
},
options: {
maintainAspectRatio: true,
legend: {
display: false
},
layout: {
padding: {
left: 0,
right: 0,
top: 0,
bottom: 0
}
},
responsive: true,
scales: {
xAxes: [{
gridLines: {
color: 'transparent',
zeroLineColor: 'transparent'
},
ticks: {
fontSize: 2,
fontColor: 'transparent'
}
}],
yAxes: [{
display: false,
ticks: {
display: false,
}
}]
},
title: {
display: false,
},
elements: {
line: {
borderWidth: 0
},
point: {
radius: 0,
hitRadius: 10,
hoverRadius: 4
}
}
}
});
}

} catch (error) {
console.log(error);
}
})(jQuery);



现在我希望当我获取月份名称时,其他js文件中的数据(从数据库检索)应该更新

最佳答案

我们使用了类似的东西,将chart.js对象设为全局,从Ajax响应设置其数据并调用更新方法。

var labels = [];
var data = [];
var smallDB = {};
var lastYear = 0;
var limit = 5; // limit history to (5) years
var obj = TestData();
for (var i in obj) {
var d = new Date(obj[i].b_date);
var idy = d.getFullYear();
lastYear = Math.max(lastYear, idy)
var num = parseInt(obj[i].b_amount);
smallDB[idy] = (smallDB[idy] || 0) + num;
}
lastYear++;
for(var i=0;i<limit;i++) {
labels[i] = i+lastYear-limit;
data[i] = smallDB[i+lastYear-limit] || 0;
console.log(labels[i], data[i]);
}

function TestData() {
return [{
b_date:"11/01/2017",
b_amount:"110"
},{
b_date:"10/01/2016",
b_amount:"100"
},{
b_date:"01/01/2020",
b_amount:"200"
},{
b_date:"12/01/2018",
b_amount:"120"
}];
};

此限制为最近 5 年。

关于javascript - 如何在图表中显示数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58033537/

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