Как оживить круги из сюжета в Python? - PullRequest
0 голосов
/ 16 октября 2019

Для набора сгенерированных точек в каждой точке нанесены окружности, и мы видим, что некоторые из них пересекают многоугольник, как показано ниже.

  1. Мое намерение состоит в том, чтобы создать анимацию, которая показывает каждый круг графика один за другим. Как мне это сделать? (Например: сначала отображается только зеленый круг, затем оранжевый и т. Д.)
  2. Можно ли также показать точки пересечения между кругом и многоугольником для каждого круга, отображаемого в анимации? Circle and Polygon

Код для генерации окружностей и распределения:

from descartes import PolygonPatch
import matplotlib.pyplot as plt
import alphashape
import numpy as np
import matplotlib as mpl
from matplotlib.collections import PatchCollection

xx = np.linspace(40,50,5)
yy = np.linspace(90,110,5)
zz = np.vstack((xx,yy)).T
fig = plt.figure(1, figsize=(12, 5))
ax = fig.add_subplot(111, aspect='equal')
x = np.random.uniform(45,60, 1000)
y = np.random.uniform(100, 110, 1000)
test = np.vstack((x,y)).T

alpha_shape = alphashape.alphashape(test, 0.)
plt.scatter(*zip(*test))
ax.add_patch(PolygonPatch(alpha_shape, alpha=0.2))

colormap = mpl.cm.Dark2.colors 
plt.plot(xx,yy,zorder=3)
plt.scatter(xx,yy,zorder=2)
circles = []
for i, colori in zip(range(0,len(xx)), colormap):
    circles.append(plt.Circle(zz[i], 3, color=colori, fill=False))
coll = PatchCollection(circles, match_original=True, zorder=1)
ax.add_collection(coll)
plt.grid(b=None)
plt.autoscale()
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...