Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python matplotlibでヒストグラムの各バーに異なる色を指定する方法

matplotlibでヒストグラムを作成する際、バーごとに異なる色を割り当てたいケースはよくあります。本記事では、hist()メソッドの戻り値を活用して、各バーにランダムな色を設定する方法を、具体的なコード例とともにわかりやすく解説します。

実装の手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。

  • 図とサブプロットのセットを作成します。

  • 100件のサンプルデータからなるランダムなデータでヒストグラムを描画します。

  • ビン(bin)の数だけ繰り返し処理を行い、各バーにランダムな塗りつぶし色(facecolor)を設定します。

  • 図を表示するには、show()メソッドを使用します。

ポイント解説

ax.hist()は、戻り値として「度数(N)」「ビンの境界値(bins)」「バーを表すRectangleオブジェクトのリスト(patches)」の3つを返します。このpatchesの各要素に対してset_facecolor()を呼び出すことで、バー単位で色を個別に制御できます。ここでは、16進数カラーコードをランダムに生成して適用しています。

コード例

import numpy as np
import matplotlib.pyplot as plt
import random
import string

# 図のサイズを設定
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

# 図とサブプロットを作成
fig, ax = plt.subplots()

# ランダムなデータを生成
data = np.random.rand(100)

# ランダムなデータでヒストグラムを描画
N, bins, patches = ax.hist(data, edgecolor='black', linewidth=1)

# 各バーにランダムな塗りつぶし色を設定
for i in range(len(N)):
    patches[i].set_facecolor("#" + ''.join(random.choices("ABCDEF" + string.digits, k=6)))

# グラフを表示
plt.show()

実行結果

上記のコードを実行すると、各バーが異なる色で描画されたヒストグラムが表示されます。

Python matplotlibでヒストグラムの各バーに異なる色を指定する方法

  1. PythonのMatplotlibでワッフルチャートを作成する方法を解説

    ワッフルチャート(Waffle Chart)は、目標に対する進捗状況を視覚的に表現するのに適した、魅力的なデータ可視化手法です。四角いマスが並ぶ様子がワッフルに似ていることからこの名前が付けられており、構成比や達成率を直感的に伝えられます。Pythonでワッフルチャートを作成するには、pywaffleライブラリを使用します。新しい図を作成する際、または既存の図を有効化する際に、FigureClass=Waffleを指定することで簡単に描画できます。作成手順辞書を使ってPandasのデータフレームを作成します。plt.figure()で新しい図を作成する際に、FigureClass=Waffle

  2. Python MatplotlibでY軸の値(目盛りラベル)を指定する方法

    PythonのMatplotlibでは、yticks()メソッドを使うことで、Y軸に表示する値や目盛りラベルを自由に指定できます。X軸の場合はxticks()を使用します。この記事では、具体的な手順とサンプルコードを通して、軸の目盛りをカスタマイズする方法を解説します。 Y軸の値を指定する手順 以下の手順で、Matplotlibのグラフに任意の目盛りラベルを設定できます。 numpyを使ってxおよびyのデータポイントを作成します。 軸に表示したい値として、文字列のリストを作成します。 xticks()メソッドとyticks()メソッドを使用し、それぞれX軸・Y軸の目盛りの位置とラベルを指定し