blog

ソフトウェア開発|Pygalを使ってPythonでデータチャートをスタイリングする

より洗練されたPythonの描画ライブラリを紹介します。...

Oct 11, 2025 · 3 min. read
シェア

より洗練された Python 描画ライブラリを紹介します。

データを視覚化するためのライブラリがたくさんあります。よりインタラクティブなライブラリの1つがPygalで、きれいなものが好きな人に向いていると思います。Pygalは、インタラクティブなグラフィックスの標準フォーマットである、ユーザーがインタラクティブに操作できる美しいSVGファイルを生成します。

PygalによるスタイリッシュなPythonプロット

この記事では、1966年から2020年までの英国総選挙の結果を表す複数棒グラフを作成しました:

続行する前に、このコードを実行するためにPythonの環境を調整する必要があるかもしれないことに注意してください:

  • 最新バージョンのPythonを実行
  • これらのライブラリと互換性のあるバージョンのPythonを使用していることを確認してください。

データはオンラインで入手可能で、pandasを使ってインポートすることができます:

  1. import pandas as pd
  2. df = pd.read_csv('https://.///--/--.sv')

これで準備完了です。データは以下の通りです:

  1.         year  conservative  labour  liberal  others
  2. 0       1966           253     364       12       1
  3. 1       1970           330     287        6       7
  4. 2   Feb 1974           297     301       14      18
  5. ..       ...           ...     ...      ...     ...
  6. 12      2015           330     232        8      80
  7. 13      2017           317     262       12      59
  8. 14      2019           365     202       11      72

Pygalでプロットすると見やすく表示されます。まず、棒グラフの定義を簡単にする方法で style オブジェクトを定義します。次に、Barオブジェクトにカスタムスタイルやその他のメタデータを渡します:

  1. import pygal
  2. from pygal.style import Style
  3. custom_style = Style(
  4. colors=('#0343df', '#e50000', '#ffff14', '#'),
  5. font_family='Roboto,Helvetica,Arial,sans-serif',
  6. background='transparent',
  7. label_font_size=14,
  8. c = pygal.Bar(
  9. title="UK Election Results",
  10. style=custom_style,
  11. y_title='Seats',
  12. width=1200,
  13. x_label_rotation=270,

次に、Barオブジェクトにデータを追加します:

  1. c.add('Conservative', df['conservative'])
  2. c.add('Labour', df['labour'])
  3. c.add('Liberal', df['liberal'])
  4. c.add('Others', df['others'])
  5. c.x_labels = df['year']

最後に、図をSVGファイルとして保存します:

  1. c.render_to_file('pygal.svg')

その結果、インタラクティブなSVGチャートができあがりました:

美しくシンプルで、見事に機能しています。

まとめ

Pythonのいくつかのプロットツールは各オブジェクトの非常に詳細な構造を必要としますが、Pygalは最初からそれを提供します。もし手元にデータがあって、きれいで、きれいで、シンプルなインタラクティブチャートを作りたいなら、Pygalを試してみてください。

Read next