質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.46%
Python

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

Q&A

1回答

1647閲覧

plotly expressで折れ線グラフを描画時にy軸の値が重なって表示されてしまう

s-hara

総合スコア52

Python

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

0グッド

1クリップ

投稿2021/07/19 21:16

編集2021/07/19 21:50

【解決したい問題】
plotlyで折れ線グラフを描画した際にy軸に表示される金額幅が近いため、表示が重なってしまいます。
このy軸表示の重なりを解消したい。
イメージ説明

【実装した内容】
以下のような日付と売上金額のデータフレーム(df)をplotlyを使って折れ線グラフで描画を試みています。

python

1>>> df 2 created_date total 30 2020-01-01 6000 41 2020-01-03 2500 52 2020-01-04 4000 63 2020-01-05 6000 74 2020-01-07 3500 8.. ... ... 9151 2020-07-20 4800 10152 2020-07-25 4800 11153 2020-07-28 2980 12154 2020-07-29 5000 13155 2020-07-30 1500 14 15[156 rows x 2 columns]

描画のコードは以下の通りです。

python

1import plotly.express as px 2fig_line = px.bar(df, x='created_date',y="total",) 3 fig_line.update_xaxes(tickvals=df['created_date'],tickformat="%Y-%m/%d") #軸の値 4 fig_line.update_yaxes(tickvals=df['total'],tickformat='0.0f') #軸の値 5 fig_line.update_layout( 6 width=1000, # figureの幅 7 height=450, # figureの高さ 8 title={ 9 "text": "日別の売上合計折れ線グラフ", 10 # グラフタイトルのスタイル 11 "font": {"family": "Courier", "size": 20, "color": "slategray"}, 12 }, 13 margin={"l": 20, "r": 20, "t": 40, "b": 20}, # 余白 14 paper_bgcolor="lightyellow", # グラフ領域の背景色 15 ) 16 fig_line.update_xaxes(rangeslider={"visible":True})

描画結果は以下の通りです。
y軸に表示される金額幅が近いため、表示が重なってしまいます。

イメージ説明

ググっていろいろ調べていますが、y軸の表示間隔をいい感じに調整できる方法がなかなか見つからず、解決策の情報をお持ちの方がいましたら情報提供お願い致します。

利用しているplotlyのバージョンは以下の通りです。
plotly==5.1.0

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

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

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

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

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

guest

回答1

0

コードが動作しないので、検証はしていませんが、以下を試してみてください。

python

1fig_line['layout']['yaxis1'].update(dtick=5000) 2

投稿2021/07/19 23:58

ppaul

総合スコア24666

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

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

s-hara

2021/07/20 09:54 編集

ご回答ありがとうございます! tick0とdtickの組み合わせを試しましたがうまく反映されませんでした。 代わりに以下の様にtickvalsにy軸に表示させたい値を設定することでいい感じの幅でy軸が表示されるようになりました。 解決への糸口となる情報提供ありがとうございました。 fig_line.update_yaxes(tickvals = [0, 2500, 5000, 7500, 10000, 12500, 15000, 17500, 20000, 22570, 25000],)
ppaul

2021/07/20 11:50

解決してよかったですね。 他の方のために自己解決して、この質問を完了したほうがよいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問