1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
import matplotlib.pyplot as plt from random import choice
class RandomWalk(): def init(self,num_points=50000): self.num_points=num_points self.x_values=[0] self.y_values=[0] def fill_walk(self): while len(self.x_values)<self.num_points: x_direction=choice([1,-1]) x_distance=choice([0,1,2,3,4]) x_step=x_directionx_distance y_direction=choice([1,-1]) y_distance=choice([0,1,2,3,4]) y_step=y_directiony_distance if x_step==0 and y_step==0: continue next_x=self.x_values[-1]+x_step next_y=self.y_values[-1]+y_step self.x_values.append(next_x) self.y_values.append(next_y) while True: rw=RandomWalk() rw.fill_walk() point_numbers=list(range(rw.num_points)) #edgecolor='none'删除每个点周围的轮廓 plt.scatter(rw.x_values,rw.y_values,c=point_numbers,cmap=plt.cm.Blues,edgecolors='none',s=1) plt.scatter(0,0,c='green',edgecolors='none',s=100) plt.scatter(rw.x_values[-1],rw.y_values[-1],c='red',edgecolors='none',s=100) plt.axes().get_xaxis().set_visible(False) plt.axes().get_yaxis().set_visible(False) plt.tick_params(axis="both",labelsize=15) plt.show() keep_running=input("Make another work?(y/n):") if keep_running=='n': break
|
近期评论