这是我的目标: 几个不规则形状的椭圆。
http://7xrn7f.com1.z0.glb.clouddn.com/16-3-12/7568305.jpg
我正在考虑将一些随机数生成为顶点位置。
但它只能构建一个多边形。那么,如何绘制几个弧并让它们靠近?
答案 0 :(得分:2)
要创建任意形状,您需要使用matplotlib.patches.Polygon
类,并提供足够的x,y样本,以使其在必要时显示为路径平滑(在一天结束时它仍然是直的当你放大得足够近时的线段。)
如果您只有几个点,则可以使用众多interpolation methods中的一个(例如scipy.interpolate.spline
)来创建数据的平滑插值,然后您可以将其输入Polygon
构造函数。
以下是使用Polygon
类创建圆圈的简单示例,方法是在圆圈周围提供x,y点。
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import Polygon
from matplotlib.collections import PatchCollection
# Circle coordinates (100 points around the circle)
t = np.linspace(0, 2 * np.pi, 100).reshape(100,1)
coords = np.concatenate((np.cos(t), np.sin(t)), axis=1)
ax = plt.axes()
polygons = [];
polygons.append(Polygon(coords))
p = PatchCollection(polygons, alpha=0.4)
ax.add_collection(p)
ax.axis('equal')
答案 1 :(得分:1)
Sonds就像官方文档中的例子一样:
http://matplotlib.org/examples/pylab_examples/ellipse_demo.html
主要部分,他们只是构建一个省略号列表:
compass.app/Contents/Resources/lib/ruby/compass_extensions
......还是我想念你的观点? :)