Python maplotlib 正弦曲线 random.randn
Python maplotlib sine curve with random.randn
我是 Python 的新手,有以下问题:
我使用以下代码生成了 numpy 数组:
X = np.random.randn(1000)*2
Y = np.sin(x)
如何获得类似于以下内容的上述数据的可视化:
谢谢大家的帮助!
如果您使用 matplotlib.pyplot,您可以将它们绘制为散点图并粗略地近似正弦波。
例如使用您的 x 和 y 数组:
import matplotlib.pyplot as plt
import numpy as np
X = np.random.rand(1000)*2
Y = np.sin(X)
plt.scatter(X,Y)
plt.show()
你最终会得到这样的结果:
编辑
根据您的评论,我 运行 为您提供:
sortx = np.argsort(X)
plt.plot(X[sortx], Y[sortx], marker='.')
plt.show()
你会得到这个近似值:
您必须将 argsort 索引传递给 X,以便它以正确的顺序绘制它们,并对 Y 执行相同的操作,这样您就可以获得一条漂亮的平滑线(至少对于您的数据最密集的地方)。
如果你想要正弦波的平滑线表示,那么你可以说:
z = np.arange(-6.28, 6.28, 0.1)
plt.plot(z, np.sin(z))
plt.show()
你会得到这样的结果:
显然,您可能想要调整 x 轴刻度以表示 pi 的值以获得更好的表示,但我想您明白了。
您可以只绘制使用 matplotlib
生成的数据。像这样
import numpy as np
import matplotlib.pyplot as plt
X = np.random.randn(1000)*2
Y = np.sin(X)
plt.plot(X,Y,'green',linestyle='none',marker='.')
plt.show()
如果你想用一条线连接这些点,那么删除linestyle='none'
。但是为了避免乱画,还要先对你的随机数进行排序,然后再定义Y。
import numpy as np
import matplotlib.pyplot as plt
X = np.random.randn(1000)*2
X=sorted(X)
Y = np.sin(X)
plt.plot(X,Y,'red',marker='.')
plt.show()
我是 Python 的新手,有以下问题:
我使用以下代码生成了 numpy 数组:
X = np.random.randn(1000)*2
Y = np.sin(x)
如何获得类似于以下内容的上述数据的可视化:
谢谢大家的帮助!
如果您使用 matplotlib.pyplot,您可以将它们绘制为散点图并粗略地近似正弦波。
例如使用您的 x 和 y 数组:
import matplotlib.pyplot as plt
import numpy as np
X = np.random.rand(1000)*2
Y = np.sin(X)
plt.scatter(X,Y)
plt.show()
你最终会得到这样的结果:
编辑 根据您的评论,我 运行 为您提供:
sortx = np.argsort(X)
plt.plot(X[sortx], Y[sortx], marker='.')
plt.show()
你会得到这个近似值:
您必须将 argsort 索引传递给 X,以便它以正确的顺序绘制它们,并对 Y 执行相同的操作,这样您就可以获得一条漂亮的平滑线(至少对于您的数据最密集的地方)。
如果你想要正弦波的平滑线表示,那么你可以说:
z = np.arange(-6.28, 6.28, 0.1)
plt.plot(z, np.sin(z))
plt.show()
你会得到这样的结果:
显然,您可能想要调整 x 轴刻度以表示 pi 的值以获得更好的表示,但我想您明白了。
您可以只绘制使用 matplotlib
生成的数据。像这样
import numpy as np
import matplotlib.pyplot as plt
X = np.random.randn(1000)*2
Y = np.sin(X)
plt.plot(X,Y,'green',linestyle='none',marker='.')
plt.show()
如果你想用一条线连接这些点,那么删除linestyle='none'
。但是为了避免乱画,还要先对你的随机数进行排序,然后再定义Y。
import numpy as np
import matplotlib.pyplot as plt
X = np.random.randn(1000)*2
X=sorted(X)
Y = np.sin(X)
plt.plot(X,Y,'red',marker='.')
plt.show()