用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读取csv文件示例(python操作csv)
Mar 11 Python
Python的Flask框架及Nginx实现静态文件访问限制功能
Jun 27 Python
通过5个知识点轻松搞定Python的作用域
Sep 09 Python
Python编程实现及时获取新邮件的方法示例
Aug 10 Python
取numpy数组的某几行某几列方法
Apr 03 Python
5款Python程序员高频使用开发工具推荐
Apr 10 Python
浅谈python新式类和旧式类区别
Apr 26 Python
Django REST framework 分页的实现代码
Jun 19 Python
解决Python3下map函数的显示问题
Dec 04 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
Mar 10 Python
Django实现将views.py中的数据传递到前端html页面,并展示
Mar 16 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
Jun 06 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
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
PHP中MD5函数使用实例代码
2008/06/07 PHP
使用PHP遍历文件目录与清除目录中文件的实现详解
2013/06/24 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
2014/06/30 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
2014/11/24 PHP
php实现当前页面点击下载文件的简单方法
2016/09/22 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
2017/06/17 PHP
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)
2009/02/14 Javascript
jquery.validate使用攻略 第三部
2010/07/01 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
2013/10/22 Javascript
Jquery 过滤器(first,last,not,even,odd)的使用
2014/01/22 Javascript
javascript中的self和this用法小结
2014/02/08 Javascript
JS函数重载的解决方案
2014/05/13 Javascript
谈谈impress.js初步理解
2015/09/09 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
2015/12/09 Javascript
Node.js检测端口(port)是否被占用的简单示例
2016/09/29 Javascript
AngularJS中run方法的巧妙运用
2017/01/04 Javascript
Vue 单文件中的数据传递示例
2017/03/21 Javascript
js轮播图的插件化封装详解
2017/07/17 Javascript
17个Python小技巧分享
2015/01/23 Python
python连接字符串的方法小结
2015/07/13 Python
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
2016/07/11 Python
python3制作捧腹网段子页爬虫
2017/02/12 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
python xpath获取页面注释的方法
2019/01/14 Python
Python3实现的判断回文链表算法示例
2019/03/08 Python
K最近邻算法(KNN)---sklearn+python实现方式
2020/02/24 Python
python golang中grpc 使用示例代码详解
2020/06/03 Python
在HTML5中使用MathML数学公式的简单讲解
2016/02/19 HTML / CSS
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
中学家长会邀请函
2014/02/03 职场文书
学校党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
人民的好儿女观后感
2015/06/18 职场文书
中国梦宣传标语口号
2015/12/26 职场文书
十大最强火系宝可梦,喷火龙上榜,第一名有双火属性
2022/03/18 日漫