替换 Canvas 饼图 Onclick
Replace a Canvas Pie Chart Onclick
我有一个使用 chart.js
创建的饼图
这是代码:
var pieChartCanvas = $("#pieChart").get(0).getContext("2d");
var pieChart = new Chart(pieChartCanvas);
var PieData = [
{
value: 700,
color: "#f56954",
highlight: "#f56954",
label: "Chrome"
},
{
value: 500,
color: "#00a65a",
highlight: "#00a65a",
label: "IE"
},
{
value: 400,
color: "#f39c12",
highlight: "#f39c12",
label: "FireFox"
}
pieChart.Doughnut(PieData);
<canvas id="pieChart" style="width:60%; height:60%;"></canvas>
我想创建几个代表不同信息的不同饼图,但一次只想显示一个饼图。因此,当我单击下拉菜单时,我希望出现另一个饼图。基本上使用与上面相同的代码,但更改 pieData[].
中的信息
使用列表进行更改的代码是
<ul class="dropdown-menu" aria-labelledby="dropdownMenu2">
<li><a href="#" onclick="">Device</a></li>
</ul>
有什么办法吗?
请记住,只有数据会被更改,因为您希望所有内容都相同 canvas,您可以创建一个函数,每次调用时都会在 canvas 上绘制数据(请参阅函数接收将显示在 canvas)
中的数据作为第一个参数
function selectData(id){
if(id == 1){
var data = []; //whatever i want to draw when option 1 is selected!
DrawChart(data);
}
if(id == 2){
var data = []; //whatever i want to draw when option 2 is selected!
DrawChart(data);
}
}
function DrawChart(data){
var pieChartCanvas = $("#pieChart").get(0).getContext("2d");
var pieChart = new Chart(pieChartCanvas).Pie(data);
//Demo with official documentation http://www.chartjs.org/docs/
//var myPieChart = new Chart(ctx[0]).Pie(data,options);
//var myDoughnutChart = new Chart(ctx[1]).Doughnut(data,options);
}
所以,您没有使用 html Select 小部件,您为此使用了 UL,您可以使用 :
<ul class="dropdown-menu" aria-labelledby="dropdownMenu2">
<li><a href="javascript:void(0)" onclick="selectData(1);">Browsers</a></li>
<li><a href="javascript:void(0)" onclick="selectData(2);">Other things</a></li>
</ul>
虽然您可以设计更好的模式来解决您的问题,但这是一个快速的解决方案,可以帮助您了解如何使用 Chart.js
动态绘制数据
我有一个使用 chart.js
创建的饼图这是代码:
var pieChartCanvas = $("#pieChart").get(0).getContext("2d");
var pieChart = new Chart(pieChartCanvas);
var PieData = [
{
value: 700,
color: "#f56954",
highlight: "#f56954",
label: "Chrome"
},
{
value: 500,
color: "#00a65a",
highlight: "#00a65a",
label: "IE"
},
{
value: 400,
color: "#f39c12",
highlight: "#f39c12",
label: "FireFox"
}
pieChart.Doughnut(PieData);
<canvas id="pieChart" style="width:60%; height:60%;"></canvas>
我想创建几个代表不同信息的不同饼图,但一次只想显示一个饼图。因此,当我单击下拉菜单时,我希望出现另一个饼图。基本上使用与上面相同的代码,但更改 pieData[].
中的信息使用列表进行更改的代码是
<ul class="dropdown-menu" aria-labelledby="dropdownMenu2">
<li><a href="#" onclick="">Device</a></li>
</ul>
有什么办法吗?
请记住,只有数据会被更改,因为您希望所有内容都相同 canvas,您可以创建一个函数,每次调用时都会在 canvas 上绘制数据(请参阅函数接收将显示在 canvas)
中的数据作为第一个参数function selectData(id){
if(id == 1){
var data = []; //whatever i want to draw when option 1 is selected!
DrawChart(data);
}
if(id == 2){
var data = []; //whatever i want to draw when option 2 is selected!
DrawChart(data);
}
}
function DrawChart(data){
var pieChartCanvas = $("#pieChart").get(0).getContext("2d");
var pieChart = new Chart(pieChartCanvas).Pie(data);
//Demo with official documentation http://www.chartjs.org/docs/
//var myPieChart = new Chart(ctx[0]).Pie(data,options);
//var myDoughnutChart = new Chart(ctx[1]).Doughnut(data,options);
}
所以,您没有使用 html Select 小部件,您为此使用了 UL,您可以使用 :
<ul class="dropdown-menu" aria-labelledby="dropdownMenu2">
<li><a href="javascript:void(0)" onclick="selectData(1);">Browsers</a></li>
<li><a href="javascript:void(0)" onclick="selectData(2);">Other things</a></li>
</ul>
虽然您可以设计更好的模式来解决您的问题,但这是一个快速的解决方案,可以帮助您了解如何使用 Chart.js
动态绘制数据