-
Notifications
You must be signed in to change notification settings - Fork 19.8k
Description
Version
52.2
Link to Minimal Reproduction
No response
Steps to Reproduce
The drilldown function doesnt work with encode. When 'data' gets activated, it does work.
var container = document.getElementById('main');
var chart = echarts.init(container);
const RV = [['met', 52],['zonder', 14]];
const RA = [['met', 6], ['zonder', 10]];
const GL = [['met', 6], ['zonder', 1]];
const vri = [ ['RV', 5, 'A'], ['RA', 2, 'B'], ['GL', 40, 'C'] ];
chart.setOption({
tooltip: {trigger: 'item'},
dataset: [
{
dimensions: ['status', 'waarde', 'groupId'],
source: vri
}
],
series: [
{
label: {show: false},
emphasis: {label: {show: true,fontSize: 40, fontWeight: 'bold'}
},
type: 'pie',
radius: ['35%', '65%'],
center: ['50%', '55%'],
id: "vri",
//----- itemgroupID doesn't seem to work in encode, drilldownfunction does not work
encode: {
itemName: 'status',
value: 'waarde',
tooltip: ['status', 'waarde','groupId'],
itemGroupID: 'groupId',
},
//----- groupID directly in data does work, drilldownfunction is active
// data: [
// { value: 5, groupId: 'A', name: 'RV' },
// {value: 2, groupId: 'B', name: 'RA'},
// {value: 40, groupId: 'C', name: 'GL'}]
},]}
);
const drilldownData = [
{ dataGroupId: 'A', data: RV},
{ dataGroupId: 'B', data: RA},
{ dataGroupId: 'C', data:GL}
];
mychart.on("click", function (event) {
console.log(event)
if (event.data) {
var subData = drilldownData.find(function (data) {
return data.dataGroupId === event.data.groupId;
});
if (!subData) {
return;
}
myChart.setOption({
series: {
type: "pie",
radius: ['35%', '65%'],
center: ['50%', '55%'],
id: "test",
dataGroupId: subData.dataGroupId,
data: subData.data.map(function (item) {
return {
value: item[1],
groupId: item[0],
name: item[0],
};
}),
universalTransition: {
enabled: true,
divideShape: "clone",
},
},
graphic: [
{
type: "text", left: 50, top: 20,
style: {text: "terug",fontSize: 18},
onclick: function () {myChart.setOption(option, true);
},
},
],
});}
});
// return option
Current Behavior
The drilldown function for this pie works when groupid is included directly in data:
data: [
{value: 5, groupId: 'A', name: 'RV' },
{value: 2, groupId: 'B', name: 'RA'},
{value: 40, groupId: 'C', name: 'GL'}]
It doesnt seem to work when dataset is used (instead of data) and groupId is included in encode:
encode: {
itemName: 'status',
value: 'waarde',
tooltip: ['status', 'waarde','groupId'],
itemGroupID: 'groupId',
},
Expected Behavior
The drilldown function should work based on a dataset.
Environment
- OS:
- Browser:
- Framework:Any additional comments?
I copied the code to codepen but I get an error:
'ReferenceError: mychart is not defined'
https://codepen.io/slindersAmsterdam/pen/yLqpbLX