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

PandasとMatplotlibでハッチング付きの棒グラフを描画する方法

Pandasを使ってハッチング(模様)付きの棒グラフを描画するには、Matplotlibのパッチ機能を利用します。以下の手順に従うことで、各バーに異なる模様を設定したグラフを作成できます。

手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
  • Pandasを使用して、2つの列を持つデータフレームを作成します。
  • 現在の図にサブプロットとして軸(Axes)を追加します。
  • kind="bar" を指定して棒グラフを描画します。
  • 使用するハッチングパターンのリストを作成します。
  • bars.patches でバーのパッチオブジェクトを取得します。
  • 各パッチを反復処理し、set_hatch() メソッドでハッチングを設定します。
  • show() メソッドを呼び出して図を表示します。

サンプルコード

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

df = pd.DataFrame(np.random.rand(5, 2), columns=['a', 'b'])
ax = plt.figure().add_subplot(111)
bars = df.plot(ax=ax, kind='bar')
hatches = ["*", "/", "o", "x"]

for patch in bars.patches:
    patch.set_hatch(hatches[np.random.randint(10)%len(hatches)])

plt.show()

実行結果

このコードを実行すると、ランダムな値を持つ5行×2列のデータから棒グラフが生成され、各バーに「*」「/」「o」「x」などの模様がランダムに割り当てられて表示されます。ハッチングを活用することで、白黒印刷でもデータ系列を視覚的に区別しやすくなります。

補足:主なハッチングパターン

Matplotlibで利用できる代表的なハッチング記号は以下の通りです。

  • / :斜線
  • \\ :逆斜線
  • - :横線
  • | :縦線
  • + :十字
  • x :バツ印
  • o :円
  • O :大きな円
  • . :点
  • * :星形

同じ記号を繰り返すことで模様の密度を上げることもできます(例:/// よりも密な斜線になります)。

  1. Python Matplotlibで3Dグラフをプロットする方法を解説

    PythonのMatplotlibを使えば、3次元の散布図やグラフを簡単に描画できます。この記事では、mpl_toolkits.mplot3dモジュールを利用して3Dグラフを作成する手順を、サンプルコード付きでわかりやすく解説します。 3Dグラフをプロットする基本手順 Pythonで3Dグラフを描くには、以下のステップに従います。 figure()メソッドを使って、新しい図(フィギュア)を作成するか、既存の図をアクティブにします。 Axes3Dオブジェクトを取得して、3D用の座標軸を準備します。 x、y、zそれぞれのデータポイントをリストとして定義します。 scatter3D()メソッドを使

  2. Matplotlibで任意のデータを使って4Dプロットを作成する方法

    Matplotlibでは、x・y・z の3つの座標データに加え、c(色) を第4の次元として割り当てることで、いわゆる「4Dプロット」を実現できます。これは実際には3D散布図にカラーマップを組み合わせたものであり、点の位置が3次元情報を、色がもう1つの変数を表現します。以下の手順に従うことで、標準正規分布に従うランダムなデータポイントを使った4Dプロットを簡単に作成できます。手順figure() メソッドを使用して、新しい図を作成するか、既存の図をアクティブ化します。サブプロット構成の一部として、3D投影(projection=3d)を指定した Axes を追加します。NumPy を使って x