Я пытаюсь провести график фазового пространства для некоторой динамической системы. По сути, у меня есть 2d-плоскость, в которой есть начальная точка, за которой следует следующая точка и так далее. Я хочу связать эти точки с линиями, и, кроме того, я хочу нарисовать несколько стрелок, чтобы я мог видеть направление (отправная точка к следующей точке и т.д.). Я решил использовать linetype '->'
для достижения этого, но он не дает никакого хорошего результата, и стрелки на самом деле, кажется, указывают в неправильном направлении много раз. Также они довольно близко расположены, и поэтому я не вижу отдельных линий.
Мой код приведен ниже:
import numpy as np
import matplotlib.pylab as plt
from scipy.integrate import odeint
def system(vect, t):
x, y = vect
return [x - y - x * (x**2 + 5 * y**2), x + y - y * (x**2 + y**2)]
vect0 = [(-2 + 4*np.random.random(), -2 + 4*np.random.random()) for i in range(5)]
t = np.linspace(0, 100, 1000)
for v in vect0:
sol = odeint(system, v, t)
plt.plot(sol[:, 0], sol[:, 1], '->')
plt.show()
Полученный график показан ниже:
Как видно, стрелки неправильно выравниваются по линиям, соединяющим точки. Кроме того, многие стрелки "выходят", и я хочу, чтобы они "вошли", потому что следующая точка всегда лежит к замкнутой петле посередине. Более того, сюжет выглядит слишком грязным, и я хотел бы построить меньше стрелок, чтобы сюжет выглядел лучше. Кто-нибудь знает, как это сделать? Заранее спасибо.