2024-06-09

棒グラフの色付け

Matplotlib は、Python と NumPy のためのプロットライブラリです。Tkinter、wxPython、Qt、GTK のような汎用 GUI ツールキットを使ったアプリケーションにプロットを埋め込むためのオブジェクト指向 API を提供しています。

Wikipedia より引用、翻訳

棒グラフは、縦軸にデータ量をとり、棒の高さでデータの大小を表したグラフです。Matplotlib を利用すると簡単に棒グラフを作成できます。

正負の値を棒グラフにするときがあります。そんなとき、正負を色分けしたくなります。毎回、どうやって色付けをするんだっけと調べ直してしまうので、備忘録にまとめました。

下記の OS 環境で動作確認をしています。

RHEL 9.4 x86_64
Python 3.12.1
jupyterlab 4.2.1
matplotlib 3.9.0

ここでは、JupyterLab で棒グラフを作成します。

まず、ライブラリのインポートと、サンプルデータを定義します。

import numpy as np
import matplotlib.pyplot as plt

left = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
height = np.array([1.2, -1.1, -2.2, 0.7, 3.1, -2.3, -3.1, 2.3, 1.7, -2.6])

棒グラフをプロットするには次のようにします。

plt.bar(left, height)
# plt.savefig('bar_001.png')
plt.show()

次のような棒グラフが表示されます。棒グラフの表示方法はとても簡単ですが、少々もの足りません。

棒グラフで、正負の値別に色を変えることにします。あとグリッド線を表示するなど少々見やすくしています。

colors = ['C0' if h > 0 else 'C1' for h in height]

plt.bar(left, height, color=colors)
plt.axhline(y = 0, lw=0.75, color='black')
plt.grid(axis='y')
# plt.savefig('bar_002.png')
plt.show()

次のように棒グラフが表示されます。

参考サイト

  1. matplotlib.pyplot.bar — Matplotlib documentation

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

0 件のコメント: