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. [bug] Maven [WARNING] 'parent.relativePath' of POM

    参考 https://blog.csdn.net/simajinxiu/article/details/86667894

  2. MergingSort

    递归排序的两种实现 <script type="text/javascript"> //归并排序(递归实现) //思想:堆排序利用了完全二叉树的性质,但是比较麻烦 // ...

  3. hugboy源库

    =[个人整理的一些源库,均来自网络]= -[Ubuntu]- #阿里源 Ubuntu 20.04 deb http://mirrors.aliyun.com/ubuntu/ focal main re ...

  4. python基础之列表、元组

    一.列表 列表(list)是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 作用:多个装备,多个爱好,多门课程,多个女朋友等 定义:[ ]内可以有多个任意类型的值,逗号 ...

  5. Centos6.9以下查看端口占用情况和开启端口命令

    Centos查看端口占用情况命令,比如查看80端口占用情况使用如下命令:   lsof -i tcp:80   列出所有端口   netstat -ntlp   1.开启端口(以80端口为例)     ...

  6. 面试官问我:如何在 Python 中解析和修改 XML

    摘要:我们经常需要解析用不同语言编写的数据.Python提供了许多库来解析或拆分用其他语言编写的数据.在此 Python XML 解析器教程中,您将学习如何使用 Python 解析 XML. 本文分享 ...

  7. 听说 JVM 性能优化很难?今天我小试了一把!

    文章首发于公众号「陈树义」及个人博客 shuyi.tech,欢迎关注访问. 对于 Java 开发的同学来说,JVM 性能优化可以说是比较难掌握的知识点.这不仅因为 JVM 性能优化需要掌握晦涩难懂的 ...

  8. 出现异常org.yaml.snakeyaml.parser.ParserException: while parsing a block mapping

    这是因为yaml的配置文件格式出错导致的异常 原代码,仔细看数据源的配置没有和type的路径一致,而是下一级的目录,所以导致出错 使用shift+tab快捷键向左移动改变下就好了 最后成功运行

  9. Go语言流程控制01--选择结构之if

    package main import "fmt" /* 字符串比大小 比首字符在字符集中出现的序号,首字符相同则比较第二个字符,以此类推 go的编译器默认使用UTF8字符集 在U ...

  10. Stopper的使用

    工具类,抽象死循环逻辑的 import java.util.concurrent.atomic.AtomicBoolean; /** * if the process closes, a signal ...