Есть ли "простой" способ анимации диаграмм рассеяния в Python? - PullRequest
1 голос
/ 28 марта 2020

Я смотрел пару обсуждений по этому вопросу сегодня, но я не знаю, как реализовать предложенные решения для моей проблемы. Надеюсь, кто-нибудь может дать мне рабочий пример или какую-нибудь подсказку.

Итак, в текущем коде я в основном начинаю с вершин треугольника и строю начальную точку с координатами (2,2). В for l oop я генерирую случайное число от 1 до 6, и в зависимости от того, что это за число, начальная точка перемещается на полпути к одной из вершин, что соответствует построению новой точки. Затем процесс повторяется с этой новой точкой n = 5 раз (в коде ниже)

Я хотел бы видеть график / график, поскольку новые точки строятся для некоторого числа итераций n, чтобы увидеть какая картина появляется. Как я могу это сделать? Есть ли легкий подход?

from matplotlib import pyplot as plt
import random as r



x = [0, 6, 3]
y = [0, 0, 8]

x0 = x[0]
y0 = y[0]
x1 = x[1]
y1 = y[1]
x2 = x[2]
y2 = y[2]

pt = [2,2]
plt.scatter(pt[0], pt[1], color='blue')
plt.scatter(x,y,color='red')

for i in range(1,5):

  randNum = r.randint(1,6)

  if randNum == 1 or randNum == 2:
      plt.scatter((pt[0]+x0)/2,(pt[1]+y0)/2,color='black')
      pt = [(pt[0]+x0)/2,(pt[1]+y0)/2]

  elif randNum == 3 or randNum == 4:
      plt.scatter((pt[0]+x1)/2,(pt[1]+y1)/2,color='black')
      pt = [(pt[0]+x1)/2,(pt[1]+y1)/2]

  elif randNum == 5 or randNum == 6:
      plt.scatter((pt[0]+x2)/2,(pt[1]+y2)/2,color='black')
      pt = [(pt[0]+x2)/2,(pt[1]+y2)/2]



plt.show()
...