Javascript 如何在Chart.js中绘制日期
我试图为我的网站制作一张图表,记录一年的日期(每天的条目),然后将其绘制在图表上 我试着编写一个函数,以Javascript 如何在Chart.js中绘制日期,javascript,html,chart.js,Javascript,Html,Chart.js,我试图为我的网站制作一张图表,记录一年的日期(每天的条目),然后将其绘制在图表上 我试着编写一个函数,以 "date1", "date2", "date3", ... 然后将该变量字符串放入chart.js系列中 var lineChartData = { labels: ["January", "February", "March", "April", "May", "June", "July", "August"], datasets: [ {
"date1", "date2", "date3", ...
然后将该变量字符串放入chart.js系列中
var lineChartData = {
labels: ["January", "February", "March", "April", "May", "June", "July", "August"],
datasets: [
{
label: "My First dataset",
fillColor: "rgba(220,220,220,0.2)",
strokeColor: "rgba(220,220,220,1)",
pointColor: "rgba(220,220,220,1)",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
pointHighlightStroke: "rgba(220,220,220,1)",
data: [randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor()]
},
{
label: "My Second dataset",
fillColor: "rgba(151,187,205,0.2)",
strokeColor: "rgba(151,187,205,1)",
pointColor: "rgba(151,187,205,1)",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
pointHighlightStroke: "rgba(151,187,205,1)",
data: [randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor()]
}
]
当我使用上面的代码时,它将生成图形。但我需要它是动态的,所以我有生成日期和数据的函数。但是在变量linechartData中调用这些函数时,图表不起作用
var lineChartData = {
labels: [genDates()],
datasets: [
{
label: "My First dataset",
fillColor: "rgba(220,220,220,0.2)",
strokeColor: "rgba(220,220,220,1)",
pointColor: "rgba(220,220,220,1)",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
pointHighlightStroke: "rgba(220,220,220,1)",
data: [genData()]
},
上面的代码将不起作用
var lineChartData = {
labels: [genDates()],
datasets: [
{
label: "My First dataset",
fillColor: "rgba(220,220,220,0.2)",
strokeColor: "rgba(220,220,220,1)",
pointColor: "rgba(220,220,220,1)",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
pointHighlightStroke: "rgba(220,220,220,1)",
data: [genData()]
},
如果有人对如何绘制数据有任何建议,请在下面发表
genData方法只生成随机数
function gendata() {
var i = 0;
var data = "";
while (i < 365) {
data = data + Math.round(Math.random() * 100) + ", ";
i = i + 1;
}
return data;
}
函数gendata(){
var i=0;
var数据=”;
而(i<365){
data=data+Math.round(Math.random()*100)+“,”;
i=i+1;
}
返回数据;
}
性别法
function getDates(startDate, stopDate) {
var dateArray = new Array();
var currentDate = startDate;
while (currentDate <= stopDate) {
dateArray.push(new Date(currentDate));
currentDate = currentDate.addDays(1);
}
dates = "";
for (i = 0; i < dateArray.length; i++) {
date = date + dateArray[i] + ", ";
}
return dates;
}
函数getDates(startDate,stopDate){
var dateArray=新数组();
var currentDate=起始日期;
而(currentDate问题在于genDates的类型不匹配。与原始示例不同,标签数组将作为包含单个字符串的数组进行计算。要解决此问题,可以直接返回数组并从图表定义中删除换行数组
var areaChartData = {
labels: labelsnuevos(productos),
// here goes my dataset
};
function labelsnuevos(productos)
{
var labels = [];
$.each(productos, function(key, value) {
var lab = value.nombre;
labels.push(lab);
});
return labels;
}
我有产品而不是日期,但你需要传递你的“日期”对于一个变量,在本例中,我的变量I sproductos,然后使用foreach获取并推送它的值。您能为
genDates
和getData
添加一个实现吗?将这些方法添加到问题中。我不确定我是否理解您所描述的内容。您能进一步解释吗?@jmurphy1267您的[genDates()]
的计算结果为['一月,二月,…]
。而不是多个字符串的数组。