【Python】Matplotlibで条件に応じて特定の棒グラフの色だけを変更する方法
Matplotlibで棒グラフを描く際、「ある条件が真の場合だけ特定のバーの色を変えたい」というケースはよくあります。例えば、値が2以外なら赤色、値が2なら黄色にする、といった条件分岐による色の切り替えです。
実装の手順
- 図のサイズを設定し、サブプロット間・周囲の余白(パディング)を調整します。
- バーの幅を表す変数を初期化します。
- データの値リストと、条件に応じた色のリストを作成します。
- bar()メソッドを使って棒グラフを描画します。
- show()メソッドで図を表示します。
サンプルコード
ポイントは、リスト内包表記を使って「値が2でなければ赤、2なら黄色」というルールに従ったカラーリストを動的に生成することです。このようにすると、条件に合致するバーだけが異なる色で描画されます。
import numpy as np import matplotlib.pyplot as plt # 図のサイズとレイアウトの自動調整を設定 plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True data = np.arange(5) width = 0.5 vals = [1, 2, 1, 5, 3] # 値が2以外なら「red」、2なら「yellow」のカラーリストを生成 colors = ["red" if i != 2 else "yellow" for i in vals] plt.bar(data, vals, width, color=colors) plt.show()
実行結果
上記のコードを実行すると、5本の棒グラフが表示され、そのうち値が「2」のバーだけが黄色で、それ以外のバーは赤色で描画されます。条件式を変更すれば、任意の値や閾値に基づいて柔軟に色を制御できます。
-
Matplotlibでハッチの線幅を変更する方法
Matplotlibでハッチ(網掛け)の線幅を変更したい場合は、rcParamsの「hatch.linewidth」パラメータを設定することで実現できます。この記事では、具体的な手順とサンプルコードをわかりやすく解説します。実装の手順図のサイズを設定し、サブプロット間および周囲のパディングを調整します。NumPyを使用して、x および y = sin(x) のデータポイントを作成します。plt.rcParams[hatch.linewidth] を使って、ハッチの線幅を設定します。scatter() メソッドを使用し、「/」ハッチが付いた正方形マーカーで、設定した線幅を適用しながらxとyのデー
-
matplotlibでカラーバー(Colorbar)の目盛りのフォントサイズを変更する方法
matplotlibでカラーバーの目盛りラベルのフォントサイズを変更したい場合、tick_params()メソッドを使うのが最も簡単です。ここでは、具体的な手順とサンプルコードを紹介します。カラーバーの目盛りサイズを変更する手順5×5のランダムなデータセットを作成します。imshow()メソッドを使い、データを2次元の正規ラスタ(画像)として表示します。スカラーマッピング可能なオブジェクト(画像)をもとに、カラーバーを作成します。フォントサイズを格納する変数を初期化し、カラーバーの目盛りサイズの変更に備えます。カラーバーの軸に対してtick_params()メソッドを呼び出し、labelsiz