質問するログイン新規登録
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

169閲覧

Plotlyで作ったtreemapの背景色を変えたい

ryosuke0528

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1グッド

0クリップ

投稿2025/04/09 10:26

1

0

実現したいこと

Plotlyのtreemapで、暗号資産のヒートマップを作りたいです。

発生している問題・分からないこと

添付画像が作成中のヒートマップです。
このヒートマップの背景色で黒くなっている部分を白色に変更したいです。

イメージ説明

該当のソースコード

python

1import requests 2import pandas as pd 3import plotly.express as px 4import plotly.io as pio 5 6pio.renderers.default = "browser" 7 8# CoinGecko API - TOP100取得 9params = { 10 "vs_currency": "usd", 11 "order": "market_cap_desc", 12 "per_page": 100, 13 "page": 1, 14 "price_change_percentage": "24h" 15} 16response = requests.get("https://api.coingecko.com/api/v3/coins/markets", params=params) 17data = response.json() 18 19# DataFrame化 20df = pd.DataFrame([{ 21 "name": coin["name"], 22 "symbol": coin["symbol"].upper(), 23 "price": coin["current_price"], 24 "market_cap": coin["market_cap"], 25 "change_24h": coin["price_change_percentage_24h"] 26} for coin in data]) 27 28# 除外リスト 29stablecoins = [ 30 "USDT", "USDC", "DAI", "TUSD", "BUSD", "FDUSD", "GUSD", "LUSD", "USDP", "EURS", "EURT" 31] 32derivatives_tokens = [ 33 "WBTC", "WETH", "STETH", "RETH", "CBETH", "SETH", "MIMATIC", "AXLUSDC", 34 "SUSDT", "WSOL", "WBNB", "WAVAX", "WFTM", "REUSD", "RSV", "SOLVBTC", 35 "CBBTC", "WSTETH", "RSETH", "WEETH", "BNSOL" 36] 37exclude_specific = ["LBTC", "XAUT"] 38 39# フィルタリング 40df = df[ 41 (~df["symbol"].isin(stablecoins)) & 42 (~df["symbol"].isin(derivatives_tokens)) & 43 (~df["symbol"].isin(exclude_specific)) 44] 45 46# スケーリング(全体 market_cap ベース) 47df["scaled_value"] = df["market_cap"] / df["market_cap"].sum() 48 49# ラベル整形 50df["label"] = df.apply( 51 lambda row: f'{row["symbol"]}<br>${row["price"]:,}<br>{row["change_24h"]:.2f}%', 52 axis=1 53) 54 55# ヒートマップ描画(カテゴリ階層なし) 56fig = px.treemap( 57 df, 58 path=["label"], 59 values="scaled_value", 60 color="change_24h", 61 color_continuous_scale="RdYlGn", 62 title="暗号資産ヒートマップ(時価総額ベース)" 63) 64 65fig.show()

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

コード末尾に以下のコードを加えてみたが変わらない。

fig.update_layout(
paper_bgcolor='white',
plot_bgcolor='white',
treemapcolorway=["#ffffff"]
)

補足

特になし

melian👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2025/04/09 12:32

Plotly のコミュニティフォーラムで同様の問題が報告されています。 Plotly Community Forum: Change root container color https://community.plotly.com/t/change-root-container-color 以下のコメントに書かれている様に、color と color_continuous_scale を指定するとコンテナの root color を変更できない様です。 https://community.plotly.com/t/change-root-container-color/79991/4 > Adding px.Constant(" "), will change the colour but you can't specify it as it's from the colour scheme. > It just doesn't work with color_continuous_scale. You can either make it using a discrete colour sequence or choose a different colour scheme. 書かれてある通り、ダミーで px.Constant(" ") を追加すれば root color が変更されますが、任意の色には変更できません。 fig = px.treemap(  df,  # path=["label"],  path=[px.Constant(" "), "label"],  values="scaled_value",  color="change_24h",  color_continuous_scale="RdYlGn",  title="暗号資産ヒートマップ(時価総額ベース)" )
ryosuke0528

2025/04/10 00:57 編集

コメントありがとうございます。 実際に試し、仰る通り色の変更はできるものの、任意の色には指定できないこと確認いたしました。 早々に、かつ大変わかりやすく解説いただきましてありがとうございました。
ryosuke0528

2025/04/10 00:58

ベストアンサーに選びたいので同じ内容を回答欄に投稿いただけますでしょうか?
guest

回答1

0

Plotly のコミュニティフォーラムで同様の問題が報告されています。

Plotly Community Forum: Change root container color

以下のコメントに書かれている様に、colorcolor_continuous_scale を指定するとコンテナの root color を変更できない様です。

https://community.plotly.com/t/change-root-container-color/79991/4

Adding px.Constant(" "), will change the colour but you can't specify it as it's from the colour scheme.
It just doesn't work with color_continuous_scale. You can either make it using a discrete colour sequence or choose a different colour scheme.

書かれてある通り、ダミーで px.Constant(" ") を追加すれば root color が変更されますが、任意の色に変更することはできません。

python

1fig = px.treemap( 2 df, 3 # path=["label"], 4 path=[px.Constant(" "), "label"], 5 values="scaled_value", 6 color="change_24h", 7 color_continuous_scale="RdYlGn", 8 title="暗号資産ヒートマップ(時価総額ベース)" 9)

投稿2025/04/10 01:03

melian

総合スコア21343

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問