plotlyで棒グラフを作成するPythonスクリプトを紹介します。棒グラフに関係する設定項目を一覧できるように全て詰め込みました。不要な設定は変更または削除してご利用ください。
なお、下記のスクリプトはplotly.express
を使わないやり方です。
目次
スクリプト全文
import plotly.graph_objects as go import plotly.io as pio def generate_bar_plot_sample(): """ plotlyで棒グラフを生成するサンプル。 備忘録として、主要な設定項目を全て活用。 """ # 可視化するデータのサンプル # 品目 items = [ "りんご", "みかん", "バナナ", "キウイ" ] # 売上 sales = [ 234, 412, 298, 89 ] # ポップアップのテキスト text = [ "赤くて丸い", "橙色で丸い", "黄色い", "中は緑色", ] # 棒の色 colors = [ "rgba(238, 51, 0, 255)", #"#EE3300FF", "rgba(255, 144, 0, 255)", #"#FF9000FF", "rgba(238, 204, 0, 255)", #"#EECC00FF", "rgba(0, 221, 51, 255)", #"#00DD33FF" ] # 棒の太さ width = [0.6, 0.3, 0.6, 0.3] # plotly.graph_objects.Figureの生成 fig = go.Figure() fig.add_trace( go.Bar( x=items, # 横軸のリスト y=sales, # 縦軸のリスト text=text, # 棒に記載するテキスト width=width, # 棒の太さ marker_color=colors, )) # 横軸の設定 xaxis = { "title": "品目", # 軸ラベル "titlefont": { # 軸ラベルのフォント "size": 14, # サイズ "color": "rgba(80, 80, 80, 255)", # 色 }, "tickangle": 45, # 目盛ラベルの回転 "tickfont": { # 目盛ラベルのフォント "size": 14, # サイズ "color": "rgba(80, 80, 80, 255)", # 色 }, } # 縦軸の設定 yaxis = { "title": "売上 [袋]", # 軸ラベル "titlefont": { # 軸ラベルのフォント "size": 14, # サイズ "color": "rgba(80, 80, 80, 255)", # 色 }, "type": "log", # ログスケールに変更 } # グラフのレイアウトを変更 fig.update_layout( title="2022年1月の果物の売上", # タイトル xaxis=xaxis, # 横軸 yaxis=yaxis, # 縦軸 plot_bgcolor="rgba(240, 240, 240, 255)", # 背景色 ) # 表示 config = { "editable": True, # 軸名等を編集可能に "displayModeBar": True, # メニューバーを常に表示 "scrollZoom": True, # スクロール操作でズーム } fig.show( config=config, # 表示設定 ) # HTMLとして出力 # pio.write_html(fig, "fruits.html") # %pip install kaleido # 画像として出力 pio.write_image(fig, "fruits.png") return fig fig = generate_bar_plot_sample()
出力結果
このスクリプトを実行すると以下の棒グラフが出力されます。
上記はwrite_image
で出力した単なる画像ですが、スクリプトやJupyter Notebookなどからfig.show()
を実行するとインタラクティブにグラフを操作することができます。
終わりに
このスクリプトには棒グラフに関係しそうな設定項目をなるべく多く詰め込んでみました。細かな設定方法を逐一検索する手間を削減するためです。設定項目の抜け漏れがあれば更新していきたいと思います。
なお、著者は以下のバージョンのライブラリで実行を確認しました。
- plotly==5.5.0