目次
概要
matplotlib で円、長方形、多角形などの図形を描画する方法について解説します。
図形の種類
matplotlib.patches では次の種類の図形が提供されています。
- patches.Arc: 弧
- patches.Arrow: 矢印
- patches.Circle: 円
- patches.CirclePolygon: 多角形で近似した円
- patches.Ellipse: 楕円
- patches.FancyArrow: カスタマイズ可能な矢印
- patches.FancyBboxPatch: カスタマイズ可能な長方形
- patches.Polygon: ポリゴン
- patches.Rectangle: 長方形
- patches.RegularPolygo: 正多角形
- patches.Wedge: くさび

patches.Arc (弧)
引数
名前 | 型 | デフォルト値 |
---|---|---|
xy | (float, float) | |
楕円の中心。 | ||
width | float | |
横軸の長さ。 | ||
height | float | |
縦軸の長さ。 | ||
angle | float | 0.0 |
楕円の回転角度を度で指定します。(反時計回り)。 | ||
theta1, theta2 | float, default: 0, 360 | |
円弧の開始角度と終了角度を度で指定します。これらの値は angle に対する相対的なもので、例えば angle = 45 で theta1 = 90 の場合、 絶対的な開始角度は 135 となります。デフォルトでは、tehta1 = 0, theta2 = 360、すなわち完全な楕円です。円弧は反時計回りに描かれます。360 以上、または 0 より小さい角度は、入力値 mod 360 を用いて、[0, 360] の範囲内の等価な角度で表現されます。 |
In [1]:

patches.Arrow (矢印)
引数
名前 | 型 | デフォルト値 |
---|---|---|
x | float | |
矢印の尾のx座標。 | ||
y | float | |
矢印の尾のy座標。 | ||
dx | float | |
x 方向の矢印の長さ。 | ||
dy | float | |
y 方向の矢印の長さ。 | ||
width | float, default: 1 | 1.0 |
矢印の幅のスケールファクタ。デフォルト値は1で、尾の幅は0.2、頭の幅は0.6です。 |
In [2]:

patches.Circle (円)
引数
名前 | 型 | デフォルト値 |
---|---|---|
xy | (float, float) | |
円の中心。 | ||
radius | float | |
円の半径。 |
In [3]:

patches.CirclePolygon (多角形で近似した円)
引数
名前 | 型 | デフォルト値 |
---|---|---|
xy | (float, float) | |
円の中心。 | ||
radius | float | |
円の半径。 | ||
resolution | int | |
何角形で近似するか。 |
In [4]:

patches.Ellipse (楕円)
引数
名前 | 型 | デフォルト値 |
---|---|---|
xy | (float, float) | |
楕円の中心。 | ||
width | float | |
横軸の長さ。 | ||
height | float | |
縦軸の長さ。 | ||
angle | float | 0.0 |
楕円の回転角度を度で指定します。(反時計回り) |
In [5]:

patches.FancyArrow (カスタマイズ可能な矢印)
引数
名前 | 型 | デフォルト値 |
---|---|---|
x | float | |
矢印の尾のx座標。 | ||
y | float | |
矢印の尾のy座標。 | ||
dx | float | |
x 方向の矢印の長さ。 | ||
dy | float | |
y 方向の矢印の長さ。 | ||
width | float | 0.001 |
矢印の尾の幅 | ||
length_includes_head | bool | False |
長さを計算する際に頭を含めるかどうか。 | ||
head_width | float or None | 3 * width |
矢印の頭の幅。 | ||
head_length | float or None | 1.5 * head_width |
矢印の頭の長さ。 | ||
shape | “full” | {“full”, “left”, “right”} |
左半分、右半分、または完全な矢印を描画します。 | ||
overhang | float | 0 |
矢印が後方に掃引される割合(0の場合は三角形を意味します)。負の値または1より大きい値を指定することができます。 | ||
head_starts_at_zero | bool | False |
True にすると、ヘッドは座標 0 で終了するのではなく、座標 0 で描画を開始します。 |
patches.Arrow
と同様ですが、矢印の見た目をより細かく設定できるようになっています。
In [6]:

patches.FancyBboxPatch (カスタマイズ可能な長方形)
引数
名前 | 型 | デフォルト値 |
---|---|---|
xy | float, float | |
矩形の左下の点の座標。 | ||
width | float | |
矩形の幅。 | ||
height | float | |
矩形の高さ。 | ||
boxstyle | str or matplotlib.patches.BoxStyle | ‘round’ |
FancyBboxPatch のスタイル。これは BoxStyle のインスタンスか、スタイル名とオプションでカンマ区切りの属性 (例: “Round, pad=0.2”) の文字列のいずれかです。この文字列は BoxStyle オブジェクトを構築するために BoxStyle に渡されます。 | ||
mutation_scale | float, default: 1 | 1.0 |
ボックススタイルの属性に適用されるスケーリング係数。 | ||
mutation_aspect | float | None |
矩形の高さは変更前にこの値で絞られ、変更したボックスはその逆数で引き伸ばされます。例えば、これにより、水平方向と垂直方向で異なるパディングが可能になります。 |
FancyBboxPatch
は Rectangle
と似ていますが、長方形の角を丸めたりすることができます。
In [7]:

boxstyle
には次の値が指定できます。

patches.Rectangle (長方形)
引数
回転角度を度で指定します。(反時計回り)
名前 | 型 | デフォルト値 |
---|---|---|
xy | float, float | |
矩形の左下の点の座標。 | ||
width | float | |
矩形の幅。 | ||
height | float | |
矩形の高さ。 | ||
angle | float | 0 |
In [8]:

patches.Polygon (ポリゴン)
引数
名前 | 型 | デフォルト値 |
---|---|---|
xy | (n, 2) array | |
ポリゴンを構成する点。 | ||
closed | bool | True |
ポリゴンが閉じているかどうか。 |
In [9]:

patches.RegularPolygon (正多角形)
引数
名前 | 型 | デフォルト値 |
---|---|---|
xy | (float, float) | |
中心点。 | ||
numVertices | int | |
頂点数。 | ||
radius | float | 5 |
中心と各頂点との距離。 | ||
orientation | float | 0 |
ポリゴンの回転角度をラジアンで指定する。 |
In [10]:

patches.Wedge (くさび)
引数
名前 | 型 | デフォルト値 |
---|---|---|
center | (float, float) | |
くさびの中心点。 | ||
r | float | |
くさびの半径。 | ||
theta1, theta2 | float, default: 0, 360 | |
円弧の開始角度と終了角度を度で指定します。360 以上、または 0 より小さい角度は、入力値 mod 360 を用いて、[0, 360] の範囲内の等価な角度で表現されます。 | ||
width | float | None |
width を指定した場合、r – width から r まで部分的なくさびが描かれます。 |
In [11]:

コメント