Random walk means walk path in random direction with random distance from start point. It is a mathematics concept. Use python matplotlib module, you can implement random walk easily. This article will tell you how to implement random walk graph in python.
1. Python Matplotlib Random Walk Example
''' Created on Aug 23, 2018 @author: zhaosong ''' import matplotlib.pyplot import random # Generate two random point steps based on the random direction and distance. def generate_steps(distance_truple=[1,2,3,4,5,6,7,8,9,10]): # Get random direction. direction = random.choice([-1,1]) # Get random distance. distance = random.choice(distance_truple) step = direction*distance return step # Generate all random point x, y value numbers. def generate_random_walk_list(max_point_numbers): # Must give a initialize value 0, otherwise the code will throw index out of range error in the while loop. x_numbers = [0] y_numbers = [0] # get x value list size. x_numbers_size = len(x_numbers) # Loop to create max_point_numbers point coordinate. while(x_numbers_size < max_point_numbers): x_step = generate_steps() y_step = generate_steps() # If the new point location is same with original, then calculate next point location. if(x_step==0 and y_step==0): continue # Calculate the next x and y by adding new step next_x = x_numbers[-1] + x_step next_y = y_numbers[-1] + y_step # Append new x, y value at the list end. x_numbers.append(next_x) y_numbers.append(next_y) # Recalculate the number list size. x_numbers_size = len(x_numbers) # Save the generated x, y value number list in a dictionary to return. ret = {} ret['x_numbers'] = x_numbers ret['y_numbers'] = y_numbers return ret # Draw a random walk graph. Each point represent a random position that the walk pass. def draw_randmon_walk(max_point_numbers): # Get all random walk points with x, y axis values list. random_walk_dict = generate_random_walk_list(max_point_numbers) x_numbers = random_walk_dict['x_numbers'] y_numbers = random_walk_dict['y_numbers'] # Get point color list. point_color = list(range(max_point_numbers)) # Plot all the point with x, y value based on green colormap. matplotlib.pyplot.scatter(x_numbers, y_numbers, s=1, c=point_color, cmap=matplotlib.pyplot.cm.Greens) # Plot the start point as blue. matplotlib.pyplot.scatter(0, 0, c='blue', edgecolors='none', s=100) # Plot the end point as red. matplotlib.pyplot.scatter(x_numbers[-1], y_numbers[-1], c='red', edgecolors='none', s=100) # Remove all x, y axes. matplotlib.pyplot.axes().get_xaxis().set_visible(False) matplotlib.pyplot.axes().get_yaxis().set_visible(False) # Display the graph. matplotlib.pyplot.show() if __name__ == '__main__': # Plot 50000 random points graph. draw_randmon_walk(50000)
Reference