web-dev-qa-db-fra.com

Changer les couleurs dans python dash plotly theme

Je crée actuellement ma première application de tableau de bord et j'ai une question sur le thème des graphiques:

Je souhaite utiliser les plotly_dark et ajustez uniquement les couleurs sous-jacentes (couleurs d'arrière-plan et d'élément) aux valeurs personnalisées. J'ai joué avec les idées fournies ici: https://plotly.com/python/templates/#saving-and-distributing-custom-themes comme ça

import plotly.graph_objects as go
import plotly.io as pio

pio.templates["plotly_dark_custom"] = go.layout.Template(
    ...custom definitions here...
)
pio.templates.default = "plotly_dark_custom"

mais je me demandais s'il existe un moyen plus intuitif, par exemple création d'un thème enfant à partir de plotly_dark et ne remplacent que les couleurs (fournissant une palette pour les couleurs et définissant la nouvelle couleur d'arrière-plan) par la suite.

Comme je suis très nouveau dans Python, mes connaissances ici sont très limitées, j'espère donc que vous pourrez me donner quelques indications dans la bonne direction.

Merci et faites-moi savoir si je devrais fournir plus de détails sur cette demande. Stephan

2
Stephan Claus

au cas où cela serait utile pour les autres, j'ai réussi à obtenir ce que je veux:

  1. Obtenez les paramètres de plotly_dark (vous ne devez le faire qu'une seule fois)
  2. définir le modèle personnalisé sur une zone sombre
  3. mettre à jour le modèle personnalisé en fonction de vos besoins en fonction de la sortie de 1.

import plotly.graph_objects as go
import plotly.io as pio

plotly_template = pio.templates["plotly_dark"]
print (plotly_template)

pio.templates["plotly_dark_custom"] = pio.templates["plotly_dark"]

pio.templates["plotly_dark_custom"].update({
#e.g. you want to change the background to transparent
'paper_bgcolor': 'rgba(0,0,0,0)',
'plot_bgcolor': 'rgba(0,0,0,0)'
})

Ce n'est probablement pas la solution la plus élégante, mais elle fait l'affaire. Stephan

1
Stephan Claus

J'ai eu une erreur lors de l'exécution de la réponse de Stephan, alors j'ai pensé publier ce qui a fonctionné pour moi.

# this helps us get the theme settings
import plotly.io as plt_io

# this is for simple plotting with plotly express
import plotly.express as px

# create our custom_dark theme from the plotly_dark template
plt_io.templates["custom_dark"] = plt_io.templates["plotly_dark"]

# set the paper_bgcolor and the plot_bgcolor to a new color
plt_io.templates["custom_dark"]['layout']['paper_bgcolor'] = '#30404D'
plt_io.templates["custom_dark"]['layout']['plot_bgcolor'] = '#30404D'

# you may also want to change gridline colors if you are modifying background
plt_io.templates['custom_dark']['layout']['yaxis']['gridcolor'] = '#4f687d'
plt_io.templates['custom_dark']['layout']['xaxis']['gridcolor'] = '#4f687d'

# load an example dataset to test
df = px.data.iris()

# create a Nice default plotly example figure
fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species",
                 size='petal_length', hover_data=['petal_width'])

# set the template to our custom_dark template
fig.layout.template = 'custom_dark'

# and voila, we have a modified dark mode figure
fig.show()
1
bodily11