chart.js 通过库D3.js来实现过滤器功能,请造一个各省市和下属区统计数量的数据,给我个简单的例子,实现饼图数据下钻
时间: 2024-05-16 18:17:01 浏览: 40
用js实现的数据饼图
5星 · 资源好评率100%
好的,这里提供一个简单的例子,实现饼图数据下钻的功能。
首先,我们需要准备一些数据,例如:
```javascript
// 省份数据
var provinceData = [
{
name: '北京市',
value: 100,
children: [
{ name: '东城区', value: 20 },
{ name: '西城区', value: 30 },
{ name: '朝阳区', value: 50 }
]
},
{
name: '上海市',
value: 80,
children: [
{ name: '黄浦区', value: 20 },
{ name: '徐汇区', value: 30 },
{ name: '长宁区', value: 30 }
]
},
// 其他省份数据
];
```
接着,我们可以使用 Chart.js 来绘制一个饼图,用来展示各省份的数量:
```javascript
var provinceChart = new Chart(ctx, {
type: 'pie',
data: {
labels: provinceData.map(function(item) { return item.name }),
datasets: [
{
data: provinceData.map(function(item) { return item.value }),
backgroundColor: [
'#FF6384',
'#36A2EB',
'#FFCE56',
// 其他颜色
]
}
]
},
options: {
// 其他配置项
}
});
```
然后,我们可以为饼图添加点击事件,当用户点击某个省份时,展示该省份下属区的数量:
```javascript
provinceChart.options.onClick = function(event, elements) {
if (elements.length > 0) {
var provinceIndex = elements[0]._index;
var province = provinceData[provinceIndex];
var districtLabels = province.children.map(function(item) { return item.name });
var districtValues = province.children.map(function(item) { return item.value });
districtChart.data = {
labels: districtLabels,
datasets: [
{
data: districtValues,
backgroundColor: [
'#FF6384',
'#36A2EB',
'#FFCE56',
// 其他颜色
]
}
]
};
districtChart.update();
}
};
```
最后,我们再使用 Chart.js 绘制一个饼图,用来展示某个省份下属区的数量:
```javascript
var districtChart = new Chart(ctx, {
type: 'pie',
data: {
labels: [],
datasets: [
{
data: [],
backgroundColor: []
}
]
},
options: {
// 其他配置项
}
});
```
这样,当用户在省份饼图上点击某个省份时,就可以展示该省份下属区的数量了。
阅读全文