用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切片用法实例教程
Sep 08 Python
Python中的迭代器漫谈
Feb 03 Python
python实现可将字符转换成大写的tcp服务器实例
Apr 29 Python
python如何查看系统网络流量的信息
Sep 12 Python
Python解惑之True和False详解
Apr 24 Python
Python之Scrapy爬虫框架安装及使用详解
Nov 16 Python
Python实现多进程共享数据的方法分析
Dec 04 Python
python 实时得到cpu和内存的使用情况方法
Jun 11 Python
浅谈关于Python3中venv虚拟环境
Aug 01 Python
python截取两个单词之间的内容方法
Dec 25 Python
Python -m参数原理及使用方法解析
Aug 21 Python
python利用xpath爬取网上数据并存储到django模型中
Feb 26 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操作Access类(PHP+ODBC+Access)
2007/01/02 PHP
apache和php之间协同工作的配置经验分享
2013/04/08 PHP
基于PHP创建Cookie数组的详解
2013/07/03 PHP
php中magic_quotes_gpc对unserialize的影响分析
2014/12/16 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
实现PHP中session存储及删除变量
2018/10/15 PHP
javascript textContent与innerText的异同分析
2010/10/22 Javascript
js判断输入是否为数字的具体实例
2013/08/03 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
jQuery时间轴插件使用详解
2015/07/16 Javascript
有关json_decode乱码及NULL的问题
2015/10/13 Javascript
AngularJs Understanding the Controller Component
2016/09/02 Javascript
vue中使用localstorage来存储页面信息
2017/11/04 Javascript
把vue-router和express项目部署到服务器的方法
2018/02/21 Javascript
小程序如何使用分包加载的实现方法
2019/05/22 Javascript
JS实现放烟花效果
2020/03/10 Javascript
原生js实现拖拽移动与缩放效果
2020/08/24 Javascript
vue3中轻松实现switch功能组件的全过程
2021/01/07 Vue.js
python基础教程之对象和类的实际运用
2014/08/29 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
2016/06/07 Python
python目录与文件名操作例子
2016/08/28 Python
Python利用QQ邮箱发送邮件的实现方法(分享)
2017/06/09 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
2017/12/08 Python
python根据list重命名文件夹里的所有文件实例
2018/10/25 Python
TensorFlow实现指数衰减学习率的方法
2020/02/05 Python
TensorFlow获取加载模型中的全部张量名称代码
2020/02/11 Python
使用python-pptx包批量修改ppt格式的实现
2020/02/14 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
python实现从ftp服务器下载文件
2020/03/03 Python
Python日志打印里logging.getLogger源码分析详解
2021/01/17 Python
加大码胸罩、内裤和服装:Just My Size
2019/03/21 全球购物
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
小学国庆节活动方案
2014/02/11 职场文书
环境卫生标语
2014/06/09 职场文书
药品营销专业毕业生自荐信
2014/07/02 职场文书
公司门卫岗位职责范本
2014/07/08 职场文书