用Python绘制漫步图实例讲解


Posted in Python onFebruary 26, 2020

我们首先来看下代码:

import matplotlib.pyplot as plt
from random import choice
class 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()

绘制出的图如下所示:

用Python绘制漫步图实例讲解

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

实例扩展

from random import choice
  
class 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_distance
  
  y_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_step
  next_y = self.y_values[-1] + y_step
  
  self.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绘制漫步图内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python 算法 排序实现快速排序
Jun 05 Python
python实现批量监控网站
Sep 09 Python
Python定时任务sched模块用法示例
Jul 16 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
Jun 24 Python
在双python下设置python3为默认的方法
Oct 31 Python
Python读取YUV文件,并显示的方法
Dec 04 Python
python将字母转化为数字实例方法
Oct 04 Python
python实现画出e指数函数的图像
Nov 21 Python
Python多线程:主线程等待所有子线程结束代码
Apr 25 Python
Python使用re模块验证危险字符
May 21 Python
基于Python 函数和方法的区别说明
Mar 24 Python
教你用python实现12306余票查询
Jun 30 Python
Django单元测试中Fixtures的使用方法
Feb 26 #Python
python 解压、复制、删除 文件的实例代码
Feb 26 #Python
Python递归调用实现数字累加的代码
Feb 25 #Python
python烟花效果的代码实例
Feb 25 #Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
Feb 25 #Python
使用python绘制cdf的多种实现方法
Feb 25 #Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
Feb 25 #Python
You might like
PHP新手上路(十二)
2006/10/09 PHP
别人整理的服务器变量:$_SERVER
2006/10/20 PHP
php 字符串函数收集
2010/03/29 PHP
关于PHP session 存储方式的详细介绍
2013/06/25 PHP
php提交过来的数据生成为txt文件
2016/04/28 PHP
php常用数组函数实例小结
2016/12/29 PHP
使用ucenter实现多站点同步登录的讲解
2019/03/21 PHP
jQuery 开天辟地入门篇一
2009/12/09 Javascript
jQuery基本选择器选择元素使用介绍
2013/04/18 Javascript
Javascript中的包装类型介绍
2015/04/02 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
bootstrap table服务端实现分页效果
2017/08/10 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
2018/11/10 Javascript
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
python使用pil生成缩略图的方法
2015/03/26 Python
Python设计模式之门面模式简单示例
2018/01/09 Python
TensorFlow用expand_dim()来增加维度的方法
2018/07/26 Python
python zip()函数的使用示例
2020/09/23 Python
用css3制作纸张效果(外翻卷角)
2013/02/01 HTML / CSS
css3打造一款漂亮的卡哇伊按钮
2013/03/20 HTML / CSS
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
利用CSS3实现平移动画效果示例代码
2016/10/12 HTML / CSS
综合测评自我鉴定
2013/10/08 职场文书
工程力学硕士生的自我评价范文
2013/11/16 职场文书
工程开工庆典邀请函
2014/02/01 职场文书
高中生学期学习自我评价
2014/02/24 职场文书
年会搞笑主持词
2014/03/27 职场文书
大学生心理活动总结
2014/07/04 职场文书
基层干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
党的群众路线教育实践活动查摆剖析材料
2014/10/10 职场文书
2014年学校党建工作汇报材料
2014/11/02 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书
优秀乡村医生事迹材料(2016精选版)
2016/02/29 职场文书
2019大学毕业晚会主持词
2019/06/21 职场文书
面试必问:圣杯布局和双飞翼布局的区别
2021/05/13 HTML / CSS