Skip to content

Add "toggle legend" button #4042

@AdnanBoota

Description

@AdnanBoota

Hi Team Plotly,

I was wondering if it is possible to add a "legend minimize/maximize (show/hide)" feature in Piecharts. I want to show/hide legend with a button (screenshots attached), so that I can use the space for the chart and also see legend whenever needed.

This feature would be very useful in cases where we have simply too many items in the legend or legend items have long text. In such cases, the user would like to resolve the label by simply hovering over the item, instead of looking for it in the legend.

I actually got this idea from Kibana dashboard (https://demo.elastic.co/app/kibana#/dashboard/edf84fe0-e1a0-11e7-b6d5-4dc382ef7f5b). They have legend minimization in their pie charts.

I'm using this library in ReactJS, will the Plotly.js also update the ReactJS package, any suggestion on this?

Thank you very much for your help.

Regards,
Adnan
pie-chart-btn-2
pie-chart-btn-1

Activity

etpinard

etpinard commented on Jul 12, 2019

@etpinard
Contributor

Hi @AdnanBoota

I'm a little confused here. But it sounds like you can get the desired result by toggling layout.showlegend

https://plot.ly/javascript/reference/#layout-showlegend

for example:

var fig = {
  data: [/* */],
  layout: {}
}

Plotly.react('graph', fig)

fig.layout.showlegend = false
Plotly.react('graph, fig)

fig.layout.showlegend = true
Plotly.react('graph, fig)
AdnanBoota

AdnanBoota commented on Jul 15, 2019

@AdnanBoota
Author

Hi @etpinard,

Again, thanks for quick response!
Yes, main idea is to show/hide with a button, i was wondering if there could be anything built-in, but if not Will definitely try updating showlegend using ReactJS.
fig.layout.showlegend = false|true

Regards,
Adnan

etpinard

etpinard commented on Jul 17, 2019

@etpinard
Contributor

i was wondering if there could be anything built-in

We could potentially add this. That said, personally, I don't think this would be a valuable addition to the library. But, I can be convinced otherwise.

changed the title [-]PieChart: legend toggle minimize/maximize (show/hide)[/-] [+]Add "toggle legend" button[/+] on Jul 17, 2019
etpinard

etpinard commented on Jul 17, 2019

@etpinard
Contributor

What could be interesting is to add a way to make "toggle" updatemenu buttons. For example,

Plotly.newPlot('graph', [{
  type: 'pie',
  labels: ['a', 'b', 'c'],
  values: [1, 2, 3]
}], {
  updatemenus: [{
    type: 'buttons',
    buttons: [{
      label: '≡',
      method: 'relayout',
      args: ['showlegend', false],
      args2: ['showlegend', true]   // NEW attribute !
    }]
  }]
}

would be enough to effectively close this ticket.

AdnanBoota

AdnanBoota commented on Jul 17, 2019

@AdnanBoota
Author

Hi @etpinard

Yes that also sounds good, button in updatemenus would be a good approach to control the legend toggle.

Thanks!

alexcjohnson

alexcjohnson commented on Jul 17, 2019

@alexcjohnson
Collaborator

cc @catherinezucker - this would allow us to create trace visibility buttons as well, for traces that don't have this functionality in the legend.

added this to the v1.51.0 milestone on Sep 19, 2019
nicolaskruchten

nicolaskruchten commented on Sep 26, 2019

@nicolaskruchten
Contributor

The trace-visibility thing could also be addressed via #2642

self-assigned this
on Oct 24, 2019
raushan9jnv

raushan9jnv commented on Sep 14, 2022

@raushan9jnv

Thank you very much! you saved me! @etpinard @AdnanBoota This worked for me. Facing similar issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

    Development

    Participants

    @nicolaskruchten@alexcjohnson@etpinard@AdnanBoota@raushan9jnv

    Issue actions

      Add "toggle legend" button · Issue #4042 · plotly/plotly.js