【发布时间】:2016-08-05 02:24:52
【问题描述】:
我正在尝试为某个动力系统绘制相空间图。实际上,我有一个二维平面,其中有一个起点,然后是下一个点,依此类推。我想用线连接这些点,最重要的是我想画一些箭头,这样我就可以看到方向(起点到下一个点等)。我决定使用线型'->' 来实现这一点,但它并没有给出任何好的结果,而且箭头实际上似乎多次指向错误的方向。它们的间距也很近,因此我看不到单独的线条。
我的代码如下:
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()
可以看出,箭头未正确对齐连接点的线。此外,许多箭头正在“出去”,我希望它们“进来”,因为下一个点总是位于中间的闭环。此外,情节看起来太乱了,我想绘制更少的箭头,这样情节会更好看。有人知道怎么做吗?提前致谢。
【问题讨论】:
-
您可以使用
plot(x,y,marker='o',markevery=5)来标记每5 个点。让他们指向正确的方向虽然更难...... -
谢谢。我至少会用这个。然而,方向对我来说同样重要。
-
也看看这个问题:stackoverflow.com/questions/23345565/…,也许会给你一些启发:)
-
线条样式
'->'不是箭头。它由两部分组成,'-'表示实线,'>'表示三角形指向右侧。如果你仔细观察,你所有的“箭头”都只是指向右边的三角形。 -
@wflynny:对!那么我真的需要为这个问题找到一个好的答案。 :)
标签: python matplotlib plot