• [高清组图]环广西赛:参赛车队赛前适应训练 2018-08-31
  • [高清组图]特谢拉复出吴曦失单刀 苏宁0-0平斯威 2018-08-31
  • [高清组图]潜水偶遇座头鲸 亲密互动玩起“水中击掌” 2018-08-31
  • [高清组图]法拉利拍定妆照 维特尔KIMI准备好了 2018-08-31
  • [高清组图]毛剑卿伤退莫雷诺捅射 申花1-0一方 2018-08-31
  • [高清组图]比埃拉双响巴坎布建功 国安5-1富力 2018-08-31
  • [高清组图]武磊世界波胡尔克点射 上港2-0胜申花 2018-08-31
  • [高清组图]武磊2球吕文君建功 上港3-1富力 2018-08-31
  • [高清组图]欧超杯-科斯塔2球 皇马加时赛2-4马竞 2018-08-31
  • [高清组图]格里芬赤膊骑行 休赛期享受二人世界 2018-08-31
  • [视频]【深化改革 重在实效】精准扶贫 四川彝区要拔掉“穷根” 2018-08-31
  • [视频]【深化改革 重在实效】破藩篱促合力 体制创新粘合“两张皮” 2018-08-31
  • [视频]【深化改革 重在实效】激发活力 实现市场准入全程便利化 2018-08-31
  • [视频]【深化改革 重在实效】打通简政放权的“最后一公里” 2018-08-31
  • [视频]【深化改革 重在实效】广东:户籍改革为外来工打开一扇门 2018-08-31
  • 手机版
    你好,游客 登录 注册 搜索
    背景:
    阅读新闻

    Python实现随机漫步

    [日期:2018-08-16] 来源:Linux社区  作者:JeremyWYL [字体: ]

    奥门新萄京官方正版 www.arianalance.com 随机漫步生成是无规则的,是系统自行选择的结果。根据设定的规则自定生成,上下左右的方位,每次所经过的方向路径。

    首先,创建一个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、生成效果图片

     

    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、展示效果

     

    Linux公社的RSS地址:http://www.arianalance.com/rssFeed.aspx

    本文永久更新链接地址http://www.arianalance.com/Linux/2018-08/153529.htm

    linux
    相关资讯       Python随机漫步 
    本文评论   查看全部评论 (0)
    表情: 表情 姓名: 字数

           

    评论声明
    • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
    • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
    • 本站管理人员有权保留或删除其管辖留言中的任意内容
    • 本站有权在网站内转载或引用您的评论
    • 参与本评论即表明您已经阅读并接受上述条款