用Python绘制漫步图实例讲解

时间:2021-05-22

我们首先来看下代码:

import matplotlib.pyplot as pltfrom random import choiceclass RandomWalk(): def __init__(self,num_points=5000): 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_direction*x_distance y_direction=choice([1,-1]) y_distance=choice([0,1,2,3,4]) y_step=y_direction*y_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)rw=RandomWalk()rw.fill_walk()plt.scatter(rw.x_values,rw.y_values,s=1)plt.show()

绘制出的图如下所示:

这段代码绘制了5000个数据点,这些点的分布完全是随机的。每次运行代码都会有不同的走向。

实例扩展:

from random import choiceclass RandomWalk():"""一个生成随机漫步数据的类"""def __init__(self,num_points=5000):"""初始化随机漫步的属性"""self.num_points = num_points#所有随机漫步都始于(0,0)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_direction * x_distancey_direction = choice([1,-1])y_distance = choice([0,1,2,3,4])y_step = y_direction * x_distance# 拒绝原地踏步if x_step == 0 and y_step == 0:continue#计算下一个点的x和y值next_x = self.x_values[-1] + x_stepnext_y = self.y_values[-1] + y_stepself.x_values.append(next_x)self.y_values.append(next_y)import matplotlib.pyplot as plt from random_walk import RandomWalk# 创建一个RandomWalk实例,并将其包含的点都绘制出来rw = RandomWalk(50000)rw.fill_walk()# 设置绘图窗口的尺寸plt.figure(dpi=80,figsize=(10,6))# 设置点按先后顺序增加颜色深度point_numbers = list(range(rw.num_points))plt.scatter(rw.x_values,rw.y_values,c=point_numbers,cmap=plt.cm.Blues,edgecolor='none',s=1)# 突出起点和终点,起点设置为绿色,终点设置为红色plt.scatter(0,0,c='green',edgecolor='none',s=100)plt.scatter(rw.x_values[-1],rw.y_values[-1],c='red',edgecolor='none',s=100)# 隐藏坐标轴plt.axes().get_xaxis().set_visible(False)plt.axes().get_yaxis().set_visible(False)plt.show()

第二个实例内容差不多,是用的PY3.5,大家可以本地测试下。

到此这篇关于用Python绘制漫步图实例讲解的文章就介绍到这了,更多相关使用Python绘制漫步图内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章