2015-09-22 59 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)))