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

Matplotlibのバーとウェッジにテクスチャ(ハッチング)を追加する方法

Matplotlibでは、hatchパラメータを指定することで、棒グラフのバーや円グラフのウェッジにテクスチャ(ハッチングパターン)を簡単に追加できます。ハッチングを活用すると、白黒印刷でもデータ系列を区別しやすくなり、グラフに視覚的なアクセントを加えることもできます。

テクスチャを追加する手順

  • figure()メソッドを使用して、新しい図を作成するか、既存の図をアクティブにします。

  • サブプロット構成の一部として、図にAxes(軸)を追加します。

  • ハッチパターンのリストを作成します。バーはこれらのハッチで塗りつぶすことができます。

  • ハッチの数と同じ数のバーを作成します。

  • bar()メソッドにhatch引数を渡して、異なるハッチを持つバーを描画します。円グラフの場合はwedgeprops={'hatch': 'パターン'}を指定します。

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

主なハッチパターンの種類

記号パターン
/ 、// 、/// 斜線(繰り返しで密度が上がる)
\ 、\\ 逆斜線
- 、| 横線・縦線
+ 、x 十字・斜め十字
o 、O 小さな丸・大きな丸
. 、* 点・星形

なお、同じ記号を繰り返すほどパターンが細かく(密に)描画されます。

サンプルコード

import numpy as np
from matplotlib import pyplot as plt

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

fig = plt.figure()
ax = fig.add_subplot(111)

# ハッチパターンのリスト
textures = ["//", "*", "o", "d", "."]

# ハッチごとに異なるテクスチャのバーを描画
for i in range(len(textures)):
    ax.bar(i, np.random.randint(1, 5),
           color="green", edgecolor="black",
           alpha=0.3, hatch=textures[i])

plt.show()

実行結果

このコードを実行すると、緑色の半透明バー5本が黒い枠線とともに描画され、それぞれのバーに「///」「*」「o」「d」「.」という異なるハッチパターンが適用されたグラフが表示されます。edgecolorを指定しないとハッチが見えにくくなるため、必ず枠線の色を設定しておきましょう。

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

    Pandasを使ってハッチング(模様)付きの棒グラフを描画するには、Matplotlibのパッチ機能を利用します。以下の手順に従うことで、各バーに異なる模様を設定したグラフを作成できます。手順図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。Pandasを使用して、2つの列を持つデータフレームを作成します。現在の図にサブプロットとして軸(Axes)を追加します。kind=bar を指定して棒グラフを描画します。使用するハッチングパターンのリストを作成します。bars.patches でバーのパッチオブジェクトを取得します。各パッチを反復処理し、set_hatch()

  2. Matplotlibの図に凡例を配置・整列させる方法

    Matplotlibで作成した図(フィギュア)に凡例を適切な位置に配置し、要素を整列させる方法を解説します。凡例の位置調整には bbox_to_anchor 引数を使用するのがポイントです。 手順 plot() メソッドを使って line1 と line2 の2本の線をプロットします。 legend() メソッドで図に凡例を配置します。このとき bbox_to_anchor を使って凡例の位置を指定し、ncol 引数で凡例要素を横並びに整列させます。 show() メソッドを呼び出して図を表示します。 コード例 from matplotlib import pyplot as plt pl