randomwalk.py代码
 
from random import choice
 
class RandomWalk():
    def __init__(self,points=5000):
        self.points=points
        self.x=[0]
        self.y=[0]
    def random_walk(self):
        while len(self.x)<self.points: #当x的长度小于5000,也就是没有生成5000点之前都继续循环生成点
            x_direction=choice([1,-1]) #通过choice选择-1和1控制方向
            x_distance=choice([0,1,2,3,4]) #通过choice选择列表里面的值控制x移动距离
            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:#如果x,y移动都为0,我们就跳出本次操作,不加这个没有移动的点,然后继续循环生成存在移动的点再添加到x列表里面
                continue
            next_x=self.x[-1]+x_step #通过计算得到新点的x值
            next_y=self.y[-1]+y_step
            self.x.append(next_x)#通过append把新的x值添加到列表x中
            self.y.append(next_y)
 
绘图的代码
 
import matplotlib.pyplot as plt
from randomwalk import RandomWalk  #导入类
 
m=[2,4]
n=[3,2]
 
while True:
    random=RandomWalk(5000)#创建实例
    random.random_walk() #实例调用类方法
    plt.figure(dpi=80,figsize=(8,6)) #调整图像查看器的尺寸,dpi是像素大小,默认80
    plt.scatter(random.x,random.y,c=random.x,s=1,edgecolor='none',cmap=plt.cm.Blues) # 以x的集合生成循序绘制颜色渐变散点
    plt.scatter(random.x,random.y,c=random.y,s=1,edgecolor='none',cmap=plt.cm.Blues) # 以y的集合生成顺序绘制颜色渐变散点
    plt.scatter(0,0,c='red',s=40,edgecolor='none') # 重绘起点,通过设置和其它点的不同属性突出起点位置
    plt.scatter(random.x[-1],random.y[-1],c='yellow',s=40,edgecolor='none') #重绘终点,通过设置和其它点的不同属性突出终点位置
    plt.title('title',fontsize=10)
    plt.xlabel('variable',fontsize=10)
    plt.ylabel('value',fontsize=10)
    plt.tick_params(axis='both',labelsize=10)
    #plt.axis([0,5,0,5])
    #plt.savefig('imag.png',bbox_inches='tight')
    plt.axes().get_xaxis().set_visible(False) #隐藏x坐标轴
    plt.axes().get_yaxis().set_visible(False) #隐藏y坐标轴
    plt.show()
    check=input("你是否要继续查看随机漫步(y/n)") #通过输入函数在关闭图像查看器的时候提示是否重新生成随机漫步
    if check=='n':
        break
 

python随机漫步的更多相关文章

  1. Python 项目实践二(生成数据)第二篇之随机漫步

    接着上节继续学习,在本节中,我们将使用Python来生成随机漫步数据,再使用matplotlib以引人瞩目的方式将这些数据呈现出来.随机漫步是这样行走得到的路径:每次行走都完全是随机的,没有明确的方向 ...

  2. Python入门-随机漫步

    Python入门-随机漫步,贴代码吧,都在代码里面 代码1 class文件 random_walk.py from random import choice class RandomWalk(): # ...

  3. 【Python】随机漫步

    创建Randomwalk()类 我们将使用Python来生成随机漫步数据,再使用matplotlib以引入瞩目的方式将这些数据呈现出来 首先创建类Randomwalk() from random im ...

  4. python数据可视化(一)——绘制随机漫步图

    数据可视化指的是通过可视化表示来探索数据,它与数据挖掘紧密相关. python有一系列的可视化和分析工具,最流行的工具之一是matplotlib,它是一个数学绘图库. 实现绘制随机漫步图   利用ra ...

  5. 数据可视化:使用python代码实现可视数据随机漫步图

    #2020/4/5 ,是开博的第一天,希望和大家相互交流学习,很开森,哈哈~ #像个傻子哟~       #好,我们进入正题, #实现功能:利用python实现数据随机漫步,漫步点数据可视化 #什么是 ...

  6. 今天给大家分享用Python matplotlib来写随机漫步的小程序

    先安装两个库: pip install matplotlib pip install numpy 引用库: import matplotlib.pyplot as mp import numpy as ...

  7. Python实现随机漫步

    随机漫步生成是无规则的,是系统自行选择的结果.根据设定的规则自定生成,上下左右的方位,每次所经过的方向路径. 首先,创建一个RandomWalk()类和fill_walk()函数 random_wal ...

  8. 醉汉随机行走/随机漫步问题(Random Walk Randomized Algorithm Python)

    世界上有些问题看似是随机的(stochastic),没有规律可循,但很可能是人类还未发现和掌握这类事件的规律,所以说它们是随机发生的. 随机漫步(Random  Walk)是一种解决随机问题的方法,它 ...

  9. NumPy 之 案例(随机漫步)

    import numpy as np The numpy.random module supplements(补充) the built-in Python random with functions ...

随机推荐

  1. Redis泛泛而谈(详细2W字)

    本文适合于刚接触redis的,文章内容比较基础,大佬请绕道. 一.NoSQL入门和概述 Ⅰ-入门概述 1.为什么用NoSQL 1)单机MySQL的美好年代 在90年代,一个网站的访问量一般都不大,用单 ...

  2. 从零搭建springboot服务02-内嵌持久层框架Mybatis

    愿历尽千帆,归来仍是少年 内嵌持久层框架Mybatis 1.所需依赖 <!-- Mysql驱动包 --> <dependency> <groupId>mysql&l ...

  3. java中基本数据类型、包装类及字符串之间的相互转换

    基本数据类型:不支持面向对象的编程机制(没有属性和方法),即不支持面向对象,之所以提供8中基本数据类型,是为了方便常规数据的处理. 包装类:通过包装类可以将基本数据类型的值包装为引用数据类型的对象,使 ...

  4. jQ的显式迭代和隐式迭代

    jQ的显示迭代 隐式迭代 let lis = document.querySelector('li') lis.forEach(function (value, index) { value.styl ...

  5. istioctl命令整理

    显示配置文件中的差异 istioctl profile diff default demo 显示对应配置的profile istioctl profile dump demo 显示可用的配置 isti ...

  6. Go语言安装配置

    一.Go语言下载 官方下载地址:https://golang.google.cn/dl/ 选择自己需要的版本下载即可. 二.Go语言安装 下载完成之后,双击go1.16.4.windows-amd64 ...

  7. 程序员与年龄:四十岁普通开发、三十五岁首席架构、三十岁基层Leader

    最近,有一个词儿特别热门--躺平.有没有人跟你说过:"躺平说起来容易,做起来更容易." 和躺平相对的是另外一个词--内卷,群聊的时候,已经很多次看过草卷起来了.jpg表情包.某些节 ...

  8. Python+Selenium - js操作

    js操作:日期框 本部分涉及两个知识点:DOM树和js DOM树教程链接: https://www.w3school.com.cn/htmldom/index.asp js教程链接 https://w ...

  9. Python 应用领域以及版本之间的区别

    Python 应用领域以及版本之间的区别 一.Python应用领域 1. Python+人工智能,给你更多研究方向选择! 2. 企业级综合实战项目,集六大前沿技术为一体 二. Python 2与Pyt ...

  10. VB 老旧版本维护系列---迷之集合- dataTable

    迷之集合- dataTable '定义一个datatable,并声明一个空对象 Dim data As DataTable = New DataTable() '获取行数 Dim rows As In ...