web-dev-qa-db-ja.com

python dash plotlyテーマの色を変更する

私は現在、最初のプロットダッシュアプ​​リを作成しており、グラフのテーマについて質問があります。

利用可能なplotly_darkテーマを使用して、基になる色(背景と要素の色)のみをカスタム値に調整します。私はここに提供されたアイデアをいじりました: https://plotly.com/python/templates/#saving-and-distributing-custom-themes このように

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"

しかし、私はもっと直感的な方法があるかどうか疑問に思っていました。 plotly_darkから子テーマを構築し、色のみをオーバーライドします(色のパレットを提供し、新しい背景色を定義します)。

私はPython=に非常に慣れていないので、ここでの私の知識は非常に限られているので、私が正しい方向にいくつかの指針を与えることを願っています。

ありがとうございました。このリクエストの詳細をお知らせください。ステファン

2
Stephan Claus

これが他の人にとって役立つ場合は、私が何とかして欲しいものを手に入れることができました:

  1. plotly_darkから設定を取得します(これは一度だけ実行する必要があります)
  2. カスタムテンプレートを非常に暗い色に設定する
  3. 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)'
})

おそらく最もエレガントなソリューションではありませんが、それはトリックを行います。ステファン

1
Stephan Claus

ステファンの答えを実行するときにエラーが発生したので、何が役立ったかを投稿したいと思いました。

# 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