2017-09-07 52 views
0

我试图更新我的甜甜圈图表内的数据,而我的addData函数似乎无法在按下添加数据按钮时工作。我想添加“未知”作为另一个数据为8的标签。请帮助。图表js添加号码

<DOCTYPE html> 
<html> 
<head> 
<title>ChartJS - Pie Chart</title> 
    <script src="jquery-3.2.1.js"></script> 
    <script 
src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.6.0/Chart.js"> 
</script> 
    <link rel="stylesheet" type="text/css" href="template.css"> 
</head> 
<body> 
<div class="block">   
    <input type="button" value="Add Data" onclick="addData()"> 
<canvas id="doughnut-chart" width="400" height="400"></canvas> 
<script> 
new Chart(document.getElementById("doughnut-chart"), { 
type: 'doughnut', 
data: { 
    labels: ["Male", "Female"], 
    datasets: [ 
    { 
     label: "Population (millions)", 
     backgroundColor: ["#3e95cd", "#8e5ea2","#3cba9f","#e8c3b9","#c45850"], 
     data: [6,4] 
    } 
    ] 
}, 
options: { 
    title: { 
    display: true, 
    text: 'Predicted world population (millions) in 2050' 
    } 
} 
}); 
function addData() { 
Chart.data.datasets[0].data[2] = 8; 
Chart.data.labels[2] = "Unknown"; 
Chart.update(); 
} 
</script> 
</div> 
</body> 
</html> 

回答

1

我得到一个相当不言自明的错误信息与您的代码:

TypeError: Chart.data is undefined

库可以在同一文档中绘制多个图。最简单的解决方法是将其存储在一个变量:

var myDoughnutChart = new Chart(document.getElementById("doughnut-chart"), { 
 
type: 'doughnut', 
 
data: { 
 
    labels: ["Male", "Female"], 
 
    datasets: [ 
 
    { 
 
     label: "Population (millions)", 
 
     backgroundColor: ["#3e95cd", "#8e5ea2","#3cba9f","#e8c3b9","#c45850"], 
 
     data: [6,4] 
 
    } 
 
    ] 
 
}, 
 
options: { 
 
    title: { 
 
    display: true, 
 
    text: 'Predicted world population (millions) in 2050' 
 
    } 
 
} 
 
}); 
 
function addData(whatChart) { 
 
    whatChart.data.datasets[0].data[2] = 8; 
 
    whatChart.data.labels[2] = "Unknown"; 
 
    whatChart.update(); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.6.0/Chart.js"></script> 
 

 
<div class="block">   
 
    <input type="button" value="Add Data" onclick="addData(myDoughnutChart)"> 
 
    <canvas id="doughnut-chart" width="400" height="400"></canvas> 
 
</div>