amcharts / amcharts5

The newest, fastest, and most advanced amCharts charting library for JavaScript and TypeScript apps.
Other
353 stars 95 forks source link

Chart specific possible accessibilities #1667

Closed SanjayStratforge closed 2 months ago

SanjayStratforge commented 3 months ago

For the below listed charts, I am facing some difficulties also I don't know whether it is possible or not. I need to know whether these charts have possibilities that I expect.

Charts Area & Line - No right click event. How do I get the value from that data point? even I couldn't get the tooltip content. Combo - I could get the data of column but I couldn't get value of line from a data point. Stacked - I am able to get only the whole column value and not the split value. Sunburst & Radar - I was not able to get the desired data. Pie of pie & Pie of bar - I was not able to get the parent series of the sub series.

So, help me out folks!

martynasma commented 3 months ago

Area & Line - No right click event. How do I get the value from that data point? even I couldn't get the tooltip content.

LineSerries does not have individual elements to add click events on.

You might need to consider adding bullets. They can be transparent if you don't want them displayed.

https://www.amcharts.com/docs/v5/concepts/common-elements/bullets/

Combo - I could get the data of column but I couldn't get value of line from a data point. Stacked - I am able to get only the whole column value and not the split value. Sunburst & Radar - I was not able to get the desired data. Pie of pie & Pie of bar - I was not able to get the parent series of the sub series.

Please make sure you add events on a series item, e.g.:

columnSeries.columns.template.events.on("click", function(ev) {
  console.log(ev.target.dataItem);
});

pieSeries.slices.template.events.on("click", function(ev) {
  console.log(ev.target.dataItem);
});
SanjayStratforge commented 3 months ago

I tried this approach already for pieSeries but the event isn't captured by the listener. columnSeries.events.on("rightclick", function (event: any) { console.log("Column event ->", event; });

Only this is capturing my event. That too doesn't hold it's parent.

martynasma commented 3 months ago

As per my previous reply, you need to add those events column templates, rather than series directly:

columnSeries.columns.template.events.on("rightclick", function (event: any) {
  console.log("Column event ->", event);
});
SanjayStratforge commented 3 months ago

It doesn't work. Following is the code:

columnSeries.columns.template.events.on("rightclick", function (event: any) {
        console.log("Event =>", event);
});

Also not able to get the parent slice data.

PieSeries:

pieSeries.slices.template.events.on("rightclick", function (event: any) {
console.log("Event =>", event);
});

The event listener is not getting it.

martynasma commented 3 months ago

The code is good. Make sure the events are created before data is set on series.

SanjayStratforge commented 3 months ago

Checked. Not resolved yet.

martynasma commented 3 months ago

Can you post your chart on CodePen?

SanjayStratforge commented 2 months ago

Thank you @martynasma,

https://github.com/amcharts/amcharts5/issues/1667#issuecomment-2285420362

I was able to find an alternate for the above mentioned.

Few things I couldn't get was for the line series which is using bullets for getting events, for sunburst and radar chart, we'll have a separate discussion since this gets more chart specific and cluttered over here.

I'll try proceeding with bullets for line series. We might close this issue for now.

Thanks!