用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 21 Python
Python变量作用范围实例分析
Jul 07 Python
PyTorch上搭建简单神经网络实现回归和分类的示例
Apr 28 Python
python实现抖音视频批量下载
Jun 20 Python
将pandas.dataframe的数据写入到文件中的方法
Dec 07 Python
获取django框架orm query执行的sql语句实现方法分析
Jun 20 Python
python 生成器和迭代器的原理解析
Oct 12 Python
解决Python二维数组赋值问题
Nov 28 Python
python给指定csv表格中的联系人群发邮件(带附件的邮件)
Dec 31 Python
Python子进程subpocess原理及用法解析
Jul 16 Python
python 破解加密zip文件的密码
Apr 22 Python
Python 第三方库 openpyxl 的安装过程
Dec 24 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网站来路获取代码(针对搜索引擎)
2010/06/08 PHP
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
2013/06/21 PHP
浅析ThinkPHP中execute和query方法的区别
2014/06/13 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
2019/03/11 PHP
jQuery 入门级学习笔记及源码
2010/01/22 Javascript
Enter回车切换输入焦点实现思路与代码兼容各大浏览器
2014/09/01 Javascript
jQuery 常用代码集锦(必看篇)
2016/05/16 Javascript
jQuery css() 方法动态修改CSS属性
2016/09/25 Javascript
浅谈js script标签中的预解析
2016/12/30 Javascript
javascript实现页面滚屏效果
2017/01/17 Javascript
js+canvas实现滑动拼图验证码功能
2018/03/26 Javascript
JS中准确判断变量类型的方法
2020/06/01 Javascript
vue-quill-editor的使用及个性化定制操作
2020/08/04 Javascript
python进阶教程之异常处理
2014/08/30 Python
Python中装饰器的一个妙用
2015/02/08 Python
python爬虫实现教程转换成 PDF 电子书
2017/02/19 Python
Python编程之string相关操作实例详解
2017/07/22 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
Python实现模拟登录网易邮箱的方法示例
2018/07/05 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
python仿evething的文件搜索器实例代码
2019/05/13 Python
python同步两个文件夹下的内容
2019/08/29 Python
Python模块汇总(常用第三方库)
2019/10/07 Python
对python中 math模块下 atan 和 atan2的区别详解
2020/01/17 Python
Numpy 理解ndarray对象的示例代码
2020/04/03 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
室内设计专业学生的自我评价分享
2013/11/27 职场文书
办公室主任先进事迹
2014/01/18 职场文书
大学生旷课检讨书
2014/01/22 职场文书
大学生标准自荐书
2014/06/15 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
工作年限证明模板
2015/06/15 职场文书
学校运动会简讯
2015/07/20 职场文书
药品销售员2015年终工作总结
2015/10/22 职场文书
react中的DOM操作实现
2021/06/30 Javascript