Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Chartjs在数据中创建数据_Javascript_Html_Chart.js - Fatal编程技术网

Javascript 使用Chartjs在数据中创建数据

Javascript 使用Chartjs在数据中创建数据,javascript,html,chart.js,Javascript,Html,Chart.js,我用Chartjs创建了一个简单的饼图。是否可以在数据本身内部创建数据?我知道有一种方法可以创建多个数据集,但这会在主饼图之外创建另一个饼图 以下是一个例子: 假设“hoofdgerecht”总共占50%,但hoofdgerecht内部还有其他房产,分别占5%、10%和20%。你如何做到这一点 我试过: Data:{ labels: ['hoofdgerecht', data:{ labels: ['warm', 'koud'] ] }; 更新:我的代码 var ctx = document

我用Chartjs创建了一个简单的饼图。是否可以在数据本身内部创建数据?我知道有一种方法可以创建多个数据集,但这会在主饼图之外创建另一个饼图

以下是一个例子:

假设“hoofdgerecht”总共占50%,但hoofdgerecht内部还有其他房产,分别占5%、10%和20%。你如何做到这一点

我试过:

Data:{
labels: ['hoofdgerecht',
data:{ 
labels: ['warm', 'koud']
] };

更新:我的代码

var ctx = document.getElementById("voedselVoorraad").getContext('2d');
var voedselVoorraad = new Chart(ctx, {
    type: 'pie',
    data: {
        labels: ["Hoofdgerecht", "Nagerecht", "Bijgerecht", "Zout", "Suiker", "Peper"],
        datasets: [{
            label: 'Voedsel op voorraad',
            data: [35, 32, 29, 30, 28, 14],
            backgroundColor: [
                'rgba(255, 99, 132, 0.2)',
                'rgba(54, 162, 235, 0.2)',
                'rgba(255, 206, 86, 0.2)',
                'rgba(75, 192, 192, 0.2)',
                'rgba(153, 102, 255, 0.2)',
                'rgba(255, 159, 64, 0.2)'
            ],
            borderColor: [
                'rgba(255,99,132,1)',
                'rgba(54, 162, 235, 1)',
                'rgba(255, 206, 86, 1)',
                'rgba(75, 192, 192, 1)',
                'rgba(153, 102, 255, 1)',
                'rgba(255, 159, 64, 1)'
            ],
            borderWidth: 1
        }]
    },
});

将所有这些项视为相同的数据集项,但可以使用相同的颜色对相关项进行分组。您甚至可以为它们添加不同的标签

您可能使用了不同的方法,但想法可能是相同的。如果您可以粘贴用于绘制图表的实际代码,现在就可以了

参考:

假设您可以将
45
划分为3个部分,您可以做的是

var chartData = {
    datasets: [{
        data: [20, 10, 15, 25, 20, 10],
        backgroundColor: [
            pattern.draw('square', '#ff6384'),
            pattern.draw('square', '#ff6384'),
            pattern.draw('square', '#ff6384'),
            pattern.draw('circle', '#36a2eb'),
            pattern.draw('diamond', '#cc65fe'),
            pattern.draw('triangle', '#ffce56'),
        ]
    }],
    labels: ['Red','Red','Red', 'Blue', 'Purple', 'Yellow']
};
在您的情况下,必须动态更新数据集以将所有值作为数据集项包含,然后必须相应地更改背景颜色和边界颜色数组

例如,假设您有一个如下所示的初始数据集

data: [35, 32, 29, 30, 28, 14];
labels: ["Hoofdgerecht", "Nagerecht", "Bijgerecht", "Zout", "Suiker", "Peper"]
现在,假设您可以在
Hoofdgerecht
中将此
35
除以更多的子集,如
10
5
20
。其想法是将它们像其他正常值一样添加到原始数据集中

data: [10, 5, 20, 32, 29, 30, 28, 14];
labels: ["Hoofdgerecht_1", "Hoofdgerecht_2", "Hoofdgerecht_3", "Nagerecht", "Bijgerecht", "Zout", "Suiker", "Peper"]

@空白在您的情况下,您必须动态更新数据集以包含所有值作为数据集项,然后您必须相应地更改背景颜色和边界颜色数组。我对此完全陌生,您能提供更多信息吗?我试着复制和粘贴你的代码,但这不起作用(当然不会,但我不知道其他方法)你显然不会硬编码值,对吗?你打算怎么做?我说的是
数据:[35,32,29,30,28,14]
,如何获得这些值?你能粘贴你将要编写的实际业务代码吗?没有官方数据,这是一个学校项目,数据值不是静态的。我可以使用我想要的任何数据,图表很重要,而不是数据
data: [10, 5, 20, 32, 29, 30, 28, 14];
labels: ["Hoofdgerecht_1", "Hoofdgerecht_2", "Hoofdgerecht_3", "Nagerecht", "Bijgerecht", "Zout", "Suiker", "Peper"]