Python--随机漫步,生成了一张张超级好看的图

    今天来看看一份有趣的代码,干有趣的事情!!!随机走的路线,没有明确方向,漫步完就像是一副画,现实生活中,随机的事情很多很多,在一个特定的范围内,产生的随机事情都会有很多。所以今天我们来看看随机漫步是怎样来生成一张好看的图吧。

import matplotlib.pylab as plt
from random import choice


class Rondon():
    def __init__(self, num_numbers=5000):
        self.num_numbers = num_numbers
        # 所有随机漫步数始于(0,0),用于存储x,y的列表值
        self.x_values = [0]
        self.y_values = [0]

    def file_worlk(self):
        # 判断随机漫步数是否到达指定长度
        while len(self.x_values) < self.num_numbers:
            # 决定正或负方向走
            x_dirextion = choice([1, -1])
            # 步长
            x_dirtance = choice([0, 1, 2, 3, 4])
            # 总距离,决定最终向哪个方向移动,移动多远
            x_step = x_dirextion * x_dirtance

            y_dirextion = choice([1, -1])
            y_dirtance = choice([0, 1, 2, 3, 4])
            y_step = y_dirextion * y_dirtance

            # 判断是否原地踏步
            if x_step == 0 and y_step == 0:
                continue
            # 计算下一个点的x值和y值,这里为-1是列表中末尾的值
            x = self.x_values[-1] + x_step
            y = self.y_values[-1] + y_step
            self.x_values.append(x)
            self.y_values.append(y)

    随机漫步也是绘图的一种,上面我们建了一个类,创建了两个方法,给定默认值点数5000个点,并初始化x轴与y轴的属性,存在一个列表中,后面又创建了一个方法,用于实先随机漫步,给定漫步的长度大小,并且计算它的总长度。最后计算值,因为是用append添加的,所以要用最后一个值与总距离相加。

      while len(self.x_values) < self.num_numbers,这里也可以判断y轴的长度。

#多次随机漫步
while True:
    # 增加点数,直接创建一个实例即可
    redd = Rondon(50000)
    redd.file_worlk()
    plt.style.use('classic')
    # 调整适合屏幕的尺寸,这里是指定一个元组,单位为英寸,dpi为像素,设置分辨率,可以有效的利用电脑屏幕空间
    flg, ax = plt.subplots(figsize=(15,9),dpi = 120)
    # 颜色渐变,着点给色
    numbers = range(redd.num_numbers)
    # edgecolors='none'去除周围轮廓
    ax.scatter(redd.x_values,redd.y_values,c=numbers,cmap=plt.cm.Blues,edgecolors='none',s=5)
    # ax.scatter(redd.x_values, redd.y_values, s=15)
    # 突出起点终点
    ax.scatter(0,0,c='green',edgecolors='none',s=100)#起点
    ax.scatter(redd.x_values[-1],redd.y_values[-1],c='red',edgecolors='none',s=100)#终点
    # 隐藏坐标轴
    ax.get_xaxis().set_visible(False)
    ax.get_yaxis().set_visible(False)
    # 显示图形界面
    plt.show()
    running = input("请输入yes/no\n")
    if running == 'no':
        break

    这里我们用到了真循环,用于后面的判断,可以在不重复运行的情况下且满足我们的判断的,可以无限生成漫步图。也可以不要!真循环内里面放了一系列的参数配置,用于设定漫步图的颜色大小,注意看我的注释,一步步看,就明白了!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清安无别事

慢慢的积累一杯奶茶吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值