Python实现随机漫步功能


Posted in Python onJuly 09, 2018

随机漫步生成是无规则的,是系统自行选择的结果。根据设定的规则自定生成,上下左右的方位,每次所经过的方向路径。

首先,创建一个RandomWalk()类和fill_walk()函数

random_walk.py

from random import choice
class Randomwalk ():
  '''一个生成随机数漫步的类'''
  def __init__(self,num_point=5000):
    '''初始化随机漫步的属性'''
    self.num_point = num_point
    #所有随机漫步的开始都是坐标[0,0]
    self.x_lab = [0]
    self.y_lab = [0]
  def fill_walk(self):
    '''计算随机漫步的所有点'''
    while len(self.x_lab) < self.num_point:
      #决定前进方向以及前进的距离
      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
      #计算下一个点X和Y的值
      next_x = self.x_lab[-1] + x_step
      next_y = self.y_lab[-1] + y_step
      self.x_lab.append(next_x)
      self.y_lab.append(next_y)

2、绘制随机漫步图

rw_visual.py

import matplotlib.pyplot as plt
from random_walk import Randomwalk
from random import choice
rw = Randomwalk()
rw.fill_walk()
plt.scatter(rw.x_lab,rw.y_lab,s=15)
plt.show()

3、生成效果图片

Python实现随机漫步功能

4、修改代码-->隐藏边框

rw_visual.py

import matplotlib.pyplot as plt
from random_walk import Randomwalk
from random import choice
while True:
  rw = Randomwalk()
  rw.fill_walk()
  #设置绘画窗口大小
  plt.figure(dpi=128,figsize=(10,6))
  point_numbers = list(range(rw.num_point))
  #突出起点(0,0)和终点
  plt.scatter(0,0,c='green',edgecolors='none',s=100)
  plt.scatter(rw.x_lab[-1],rw.y_lab[-1],c='red',edgecolors='none',s=100)
  #隐藏坐标轴
  plt.axes().get_xaxis().set_visible(False)
  plt.axes().get_yaxis().set_visible(False)
  plt.scatter(rw.x_lab,rw.y_lab,c=point_numbers,cmap=plt.cm.Blues,edgecolors='none',s=15)
  plt.show()
  keep_running = input("Make another walk?(y/n): ")
  keep_running = keep_running.lower()
  if keep_running == 'n':
    break

5、展示效果

Python实现随机漫步功能

总结

以上所述是小编给大家介绍的Python实现随机漫步功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
PyQt5主窗口动态加载Widget实例代码
Feb 07 Python
详解Django解决ajax跨域访问问题
Aug 24 Python
python爬虫之自动登录与验证码识别
Jun 15 Python
对python pandas 画移动平均线的方法详解
Nov 28 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
Jan 14 Python
python使用配置文件过程详解
Dec 28 Python
django-crontab实现服务端的定时任务的示例代码
Feb 17 Python
python使用turtle库绘制奥运五环
Feb 24 Python
django 将自带的数据库sqlite3改成mysql实例
Jul 09 Python
Matplotlib 绘制饼图解决文字重叠的方法
Jul 24 Python
用python获取txt文件中关键字的数量
Dec 24 Python
python中pd.cut()与pd.qcut()的对比及示例
Jun 16 Python
Python2包含中文报错的解决方法
Jul 09 #Python
对numpy数据写入文件的方法讲解
Jul 09 #Python
可能是最全面的 Python 字符串拼接总结【收藏】
Jul 09 #Python
Tensorflow中的placeholder和feed_dict的使用
Jul 09 #Python
NumPy.npy与pandas DataFrame的实例讲解
Jul 09 #Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
Jul 09 #Python
详解Python的hasattr() getattr() setattr() 函数使用方法
Jul 09 #Python
You might like
PHP+AJAX实现无刷新注册(带用户名实时检测)
2007/01/02 PHP
根据经纬度计算地球上两点之间的距离js实现代码
2013/03/05 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
2013/11/14 Javascript
javascript模拟枚举的简单实例
2014/03/06 Javascript
javascript实现验证身份证号的有效性并提示
2015/04/30 Javascript
JavaScript过滤字符串中的中文与空格方法汇总
2016/03/07 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
微信小程序链接传参并跳转新页面
2016/11/29 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
2017/03/10 Javascript
javascript简写常用的12个技巧(可以大大减少你的js代码量)
2020/03/28 Javascript
js实现canvas图片与img图片的相互转换的示例
2017/08/31 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
2018/08/24 Javascript
详解三种方式解决vue中v-html元素中标签样式
2018/11/22 Javascript
JS匿名函数内部this指向问题详析
2019/05/10 Javascript
微信小程序表单验证WxValidate的使用
2019/11/27 Javascript
在Python中利用Pandas库处理大数据的简单介绍
2015/04/07 Python
Python判断两个对象相等的原理
2017/12/12 Python
django2用iframe标签完成网页内嵌播放b站视频功能
2018/06/20 Python
python3实现字符串的全排列的方法(无重复字符)
2018/07/07 Python
python 反向输出字符串的方法
2018/07/16 Python
解决Python运行文件出现out of memory框的问题
2018/12/03 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
2018/12/26 Python
Python定义函数功能与用法实例详解
2019/04/08 Python
Python 静态方法和类方法实例分析
2019/11/21 Python
python cv2.resize函数high和width注意事项说明
2020/07/05 Python
Python基于httpx模块实现发送请求
2020/07/07 Python
Opencv常见图像格式Data Type及代码实例
2020/11/02 Python
摩顿布朗英国官方网上商店:奢华沐浴、身体和头发护理
2016/10/29 全球购物
《陶罐和铁罐》教学反思
2014/02/19 职场文书
预备党员自我评价范文
2015/03/04 职场文书
工作会议通知
2015/04/15 职场文书
2015年秋季小班开学寄语
2015/05/27 职场文书
湘江北去观后感
2015/06/15 职场文书
预备党员的思想汇报,你真的会写吗?
2019/06/28 职场文书
阿里云服务器部署mongodb的详细过程
2021/09/04 MongoDB
详解Vue router路由
2021/11/20 Vue.js