用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 相关文章推荐
解决python3在anaconda下安装caffe失败的问题
Jun 15 Python
Python+matplotlib实现华丽的文本框演示代码
Jan 22 Python
centos 安装python3.6环境并配置虚拟环境的详细教程
Feb 22 Python
Python使用pickle模块报错EOFError Ran out of input的解决方法
Aug 16 Python
对python中的高效迭代器函数详解
Oct 18 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
Dec 30 Python
Python数据类型之Number数字操作实例详解
May 08 Python
Python读取xlsx文件的实现方法
Jul 04 Python
Flask之pipenv虚拟环境的实现
Nov 26 Python
pytorch ImageFolder的覆写实例
Feb 20 Python
Python3 requests模块如何模仿浏览器及代理
Jun 15 Python
python反编译教程之2048小游戏实例
Mar 03 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
WAR3重制版DOTA 5V5初体验
2020/04/09 DOTA
MySQL数据源表结构图示
2008/06/05 PHP
PHP 输出缓存详解
2009/06/20 PHP
php防止sql注入之过滤分页参数实例
2014/11/03 PHP
php 三大特点:封装,继承,多态
2017/02/19 PHP
javascript 判断中文字符长度的函数代码
2012/08/27 Javascript
javascript中的parseInt和parseFloat区别
2013/07/12 Javascript
javascript实现点击后变换按钮显示文字的方法
2015/05/13 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
概述BootStrap中role=&quot;form&quot;及role作用角色
2016/12/08 Javascript
JavaScript实现倒计时跳转页面功能【实用】
2016/12/13 Javascript
vue.js的安装方法
2017/05/12 Javascript
angularjs2 ng2 密码隐藏显示的实例代码
2017/08/01 Javascript
jQuery 1.9版本以上的浏览器判断方法代码分享
2017/08/28 jQuery
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
jQuery实现checkbox全选功能完整实例
2018/07/12 jQuery
React Native开发封装Toast与加载Loading组件示例
2018/09/08 Javascript
Vue插件之滑动验证码
2019/09/21 Javascript
[37:23]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第二局
2016/03/04 DOTA
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
2016/11/16 Python
浅谈机器学习需要的了解的十大算法
2017/12/15 Python
使用python实现链表操作
2018/01/26 Python
python实现图像识别功能
2018/01/29 Python
Python实现将蓝底照片转化为白底照片功能完整实例
2019/12/13 Python
python 爬虫 实现增量去重和定时爬取实例
2020/02/28 Python
Selenium python时间控件输入问题解决方案
2020/07/22 Python
Python 列表推导式需要注意的地方
2020/10/23 Python
GEOX鞋美国官方网站:意大利会呼吸的鞋
2017/07/12 全球购物
元旦获奖感言
2014/03/08 职场文书
2014年度考核工作总结
2014/12/24 职场文书
违纪开除通知书
2015/04/25 职场文书
篮球赛新闻稿
2015/07/17 职场文书
毕业典礼致辞
2015/07/29 职场文书
详解PHP用mb_string处理windows中文字符
2021/05/26 PHP
微信小程序调用python模型
2022/04/21 Python