我正在编写一个非常简单的脚本,该脚本使用jupyter笔记本(python 3)绘制了一个罪过。当我放:
import numpy
import matplotlib.pyplot as plt
x=np.arange(0.0,5*np.pi,0.001)
y = np.sin(x)
plt.plot(x,y)
情节很好。
但是:
import numpy
import matplotlib.pyplot as plt
x=np.arange(0.0,5*np.pi,0.001)
np.random.shuffle(x)
y = np.sin(x)
plt.plot(x,y)
我不明白为什么在我犯罪之前对x进行改组。
谢谢
答案 0 :(得分:2)
首先让我们简化一下。我们绘制4个点,并按照它们的绘制顺序对其进行注释。
import numpy as np; np.random.seed(42)
import matplotlib.pyplot as plt
x=np.arange(4)
y = np.sin(x)
plt.plot(x,y, marker="o")
for i, (xi,yi) in enumerate(zip(x,y)):
plt.annotate(str(i), xy=(xi,yi), xytext=(0,4),
textcoords="offset points", ha="center")
plt.show()
如果我们洗牌x
并绘制相同的图形,则不会,
x=np.arange(4)
np.random.shuffle(x)
y = np.sin(x)
我们看到这些点的位置仍然相同,但是例如以前,第一个点是(0,0)处的点,现在是第三个点。由于这种随机顺序,连接线变成了zickzack。
现在,如果使用足够的点,所有这些线将加起来看起来像一个完整的表面,这就是您在图像中得到的。