三角関数で定義される「円」は、Pythonで簡単に描画することができます。
本記事では、Pythonを使用した円の描画方法について、詳しくご説明します。
円(Circle)
任意の点\(\left( x,y\right)\)を中心に持つ半径\(r\)の円の円周上の点は、下式で表されます。
\(\left( x+r\cos \theta ,y+r\sin \theta \right)\)
円描画関数の実装
中心座標と半径から円を描画する関数について、NumPyを使用した実装例をご紹介します。
#input
import numpy as np
import matplotlib.pyplot as plt
def draw_circle(ax, radius, P=(0,0), n=257,
color="red", center_marker=True):
theta = np.linspace(0, 2*np.pi, n)
x = P[0] + radius * np.cos(theta)
y = P[1] + radius * np.sin(theta)
ax.set_xlabel("x", fontsize = 14)
ax.set_ylabel("y", fontsize = 14)
ax.plot(x, y, color=color)
上記関数を使用して、中心座標(-1, 1)、半径2の円をプロットしてみます。
#input
fig = plt.figure(figsize=(6, 6))
ax = fig.add_subplot(111)
ax.grid()
ax.set_title("Circle", fontsize = 16)
ax.set_xlim(-4, 4)
ax.set_ylim(-4, 4)
draw_circle(ax, radius=2, P=(-1, 1))
plt.show()
matplotlib.patches.Circle
Matplotlibのmatplotlib.patches.Circleクラスを使用すると、円形描画することができます。
引数として、中心座標、半径、塗りつぶしの色・透明度などを指定することができます。
以下に描画例をご紹介します。
#input
import matplotlib.pyplot as plt
import matplotlib.patches as pat
fig = plt.figure(figsize=(6, 6))
ax = fig.add_subplot(111)
ax.set_xlim(-2, 2)
ax.set_ylim(-2, 2)
C = pat.Circle(xy = (0, 0), radius = 1, color = "lime")
ax.add_patch(C)
plt.show()
半透明にし、ハッチングした例を以下に載せます。
塗りつぶしの透明度は”alpha”で指定し、ハッチングは”hatch”で指定できます。
#input
import matplotlib.pyplot as plt
import matplotlib.patches as pat
fig = plt.figure(figsize=(6, 6))
ax = fig.add_subplot(111)
ax.set_xlim(-2, 2)
ax.set_ylim(-2, 2)
C = pat.Circle(xy = (0, 0), radius = 1, color = "deeppink",
alpha=0.5, hatch='O')
ax.add_patch(C)
plt.show()
塗りつぶしの色とエッジの色を指定することで、塗りつぶしのないシンプルな円を描画することができます。
塗りつぶしの色は、”fc”あるいは”face color”で、エッジの色は、”ec”あるいは”edge color”でそれぞれ指定します。
“color”の指定は、上記両方の色を上書きすることになります。
また、”lw”あるいは”linewidth”で線の太さを指定できます。
fcを白、ecを黒に指定し、太線でシンプルに円を描画した例を、以下にご紹介します。
#input
import matplotlib.pyplot as plt
import matplotlib.patches as pat
fig = plt.figure(figsize=(6, 6))
ax = fig.add_subplot(111)
ax.set_xlim(-2, 2)
ax.set_ylim(-2, 2)
C = pat.Circle(xy = (0, 0), radius = 1,
fc = "white", ec = "black", lw = 5)
ax.add_patch(C)
plt.show()
まとめ
この記事では、Pythonを使用した円の描画方法について、ご説明しました。
本記事を参考に、ぜひ試してみて下さい。
参考
Python学習用おすすめ教材
Pythonの基本を学びたい方向け
統計学基礎を学びたい方向け
Pythonの統計解析を学びたい方向け
おすすめプログラミングスクール
Pythonをはじめ、プログラミングを学ぶなら、TechAcademy(テックアカデミー)がおすすめです。
私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。
現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。
無料体験ができますので、まずは試してみてください!