AndyMoore
AndyMoore

Reputation: 1444

plotly python - fix colours for specific legend labels

I am making a pie chart that looks like this.

I want to make multiple pie charts for different sets of data and keep the colours fixed to the legend names, but when the order changes, the colour scheme follows the order.

Is there a way to pass a dict into the chart to fix the colours to specific items?

[enter image description here]

Upvotes: 3

Views: 2350

Answers (1)

Maximilian Peters
Maximilian Peters

Reputation: 31659

You cannot pass a dictionary with your colors, but you can specify the colors manually, set sort to False and pass the values always in the same order, e.g.

import plotly

fig = {
    'data': [{'labels': ['Residential', 'Non-Residential', 'Utility'],
              'values': [19, 26, 55],
              'type': 'pie',
              'sort': False,
              'marker': {'colors': ['rgb(255, 0, 0)',
                                    'rgb(0, 255, 0)',
                                    'rgb(0, 0, 255)']
                        }
            }]
     }

fig = {
    'data': [{'labels': ['Residential', 'Non-Residential', 'Utility'],
              'values': [100, 10, 25],
              'type': 'pie',
              'sort': False,
              'marker': {'colors': ['rgb(255, 0, 0)',
                                    'rgb(0, 255, 0)',
                                    'rgb(0, 0, 255)']
                        }
            }]
     }
plotly.offline.plot(fig)

enter image description here

Upvotes: 3

Related Questions