在matplotlib中过滤出圆形边界,可以通过以下步骤实现:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Circle
fig, ax = plt.subplots()
circle = Circle((0.5, 0.5), 0.3)
其中,(0.5, 0.5)
表示圆心的坐标,0.3
表示圆的半径。
ax.add_patch(circle)
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
这里假设坐标轴范围为0到1。
x = np.linspace(0, 1, 100)
y = np.linspace(0, 1, 100)
X, Y = np.meshgrid(x, y)
mask = circle.contains_points(np.column_stack((X.flatten(), Y.flatten())))
这里使用np.linspace
生成0到1之间的100个均匀分布的点,然后使用np.meshgrid
生成网格点坐标。circle.contains_points
函数用于判断每个点是否在圆形内部,返回一个布尔数组,表示每个点是否在圆形内部。
ax.plot(X[mask], Y[mask], 'ro')
这里使用'ro'
表示红色的圆形标记。
plt.show()
完整代码如下:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Circle
fig, ax = plt.subplots()
circle = Circle((0.5, 0.5), 0.3)
ax.add_patch(circle)
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
x = np.linspace(0, 1, 100)
y = np.linspace(0, 1, 100)
X, Y = np.meshgrid(x, y)
mask = circle.contains_points(np.column_stack((X.flatten(), Y.flatten())))
ax.plot(X[mask], Y[mask], 'ro')
plt.show()
这样就可以在matplotlib中过滤出圆形边界,并将边界点用红色圆形标记显示出来。
领取专属 10元无门槛券
手把手带您无忧上云