plotlyで棒グラフを作成するための設定

plotlyの棒グラフ

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()

出力結果

このスクリプトを実行すると以下の棒グラフが出力されます。

plotlyの棒グラフ

上記はwrite_imageで出力した単なる画像ですが、スクリプトやJupyter Notebookなどからfig.show()を実行するとインタラクティブにグラフを操作することができます。

終わりに

このスクリプトには棒グラフに関係しそうな設定項目をなるべく多く詰め込んでみました。細かな設定方法を逐一検索する手間を削減するためです。設定項目の抜け漏れがあれば更新していきたいと思います。

なお、著者は以下のバージョンのライブラリで実行を確認しました。

  • plotly==5.5.0
よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

ITベンチャーでデータ分析、AI開発、システム設計、提案、営業、組織管理、公演、採用などなど多数の役割に従事してきました。

様々な職業や背景の方々と交流するうちに、幅広い分野で問題を解決したり価値を生み出したりするためには、個別の知識だけでなく、汎用的に物事を考える力を伸ばしていく必要があると考えるようになりました。

更に、自分自身の考える力だけでなく、より多くの人々の考える力のトレーニングを応援することで、社会全体を良くしていけるのではないかと考えて、このサイトを作りました。

目次
閉じる