x,y 是圆的位置,r 是半径 - 所有向量。我想一次绘制它们。就像是:
import matplotlib.pyplot as plt
from matplotlib.patches Circle
#define x,y,r vectors
fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
plt.Circle((x,y),r,color='r')
plt.show()
谢谢。
x,y 是圆的位置,r 是半径 - 所有向量。我想一次绘制它们。就像是:
import matplotlib.pyplot as plt
from matplotlib.patches Circle
#define x,y,r vectors
fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
plt.Circle((x,y),r,color='r')
plt.show()
谢谢。
plt.scatter允许您定义绘制点的半径。
从文档
matplotlib.pyplot.scatter(x, y, s=20, c='b', marker='o')
[...]
s:
size in points^2. It is a scalar or an array of the same length as x and y.
玩,facecolor
你edgecolor
应该能够得到你想要的
我不了解 Circles 补丁,但您可以使用标准绘图命令执行此操作:
import numpy as np
import matplotlib.pyplot as plt
x = np.array([0.2,0.4])
y = np.array([0.2,1.2])
r = np.array([0.5,0.3])
phi = np.linspace(0.0,2*np.pi,100)
na=np.newaxis
# the first axis of these arrays varies the angle,
# the second varies the circles
x_line = x[na,:]+r[na,:]*np.sin(phi[:,na])
y_line = y[na,:]+r[na,:]*np.cos(phi[:,na])
plt.plot(x_line,y_line,'-')
plt.show()
基本思想是给plt.plot(...)
命令两个二维数组。在这种情况下,它们被解释为一个地块列表。特别是对于许多情节(=许多圆圈),这比逐圈绘制要快得多。