2015-09-22 60 views
0

我想在此图上随机生成n个点。 我已经使用.scatter方法,但点似乎不是随机的。有没有一种方法可以简单地传递一个数字并生成这些点数?在图上随机生成点 - matplotlib

import numpy as np 
import matplotlib.pyplot as plt 
from mpl_toolkits.mplot3d import Axes3D 
from matplotlib import cm 
import matplotlib.pyplot as plt 
import numpy as np 
%matplotlib inline 

def f(t): 
    s1 = np.cos(2*np.pi*t) 
    e1 = np.exp(-t) 
    return np.multiply(s1,e1) 


t1 = np.arange(0.0, 5.0, 0.1) 
t2 = np.arange(0.0, 5.0, 0.02) 
t3 = np.arange(0.0, 2.0, 0.01) 

fig = plt.figure(figsize=plt.figaspect(2.)) 

ax = fig.add_subplot(2, 1, 2, projection='3d') 
X = np.arange(-20, 20, 0.25) 
xlen = len(X) 
Y = np.arange(-20, 20, 0.25) 
ylen = len(Y) 
X, Y = np.meshgrid(X, Y) 
R = np.sqrt(X**2 + Y**2) 
Z = np.sin(R) 

surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, color='yellow', 
     linewidth=0, antialiased=False) 
scatteredpoints = ax.scatter(X[1::20, 1::20],Y[1::20, 1::20],Z[1::20, 1::20],linewidth=0, antialiased=False) 

ax.set_zlim3d(-1, 1) 

plt.show() 
+0

我不清楚你在问什么......散点图绘制你传递给它的数据。现在,你在普通网格上传入点数。你问如何生成随机数据? –

+0

是的,我想要的点是随机的。例如我想在冲浪图上放置100个随机点 –

回答

2

您需要将随机数据输入到plt.scatter

def scatterRandomPoints(n): 
    plt.scatter(*np.random.randint(100, size = (2, n)))