Python中使用random随机函数与Matplotlib库绘制随机漫步图

╰+攻爆jí腚メ 2023-06-27 03:17 46阅读 0赞
  1. **Python中使用random随机函数与Matplotlib库绘制随机漫步图**

一、概述

  1. 随机现象在我们的生活中并不少见,我们常见的一次抛硬币的正反面,股票的走势等等,都是随机事件。这些不确定性事件给我们带来恐慌的同时也带了希望,让我们即使在很困难的情境下也仍然相信机会会降临在我们身上。随机漫步理论最初源于经济学中,后来逐步溢出到其他的领域。在本文中,通过绘制随机漫步图直观的查看随机现象,也更进一步了解如何使用随机函数以及绘图功能。(更好的阅读体验,请移步我的[个人博客][Link 1])

二、代码演示

  1. from random import choice, randint
  2. import matplotlib.pyplot as plt
  3. class RandomWalk():
  4. def __init__(self, walk_nums=100):
  5. self.walk_nums = walk_nums # 移动的总次数
  6. self.x_values = [0] # x轴方向轨迹坐标列表
  7. self.y_values = [0] # y轴方向轨迹坐标列表
  8. def move(self):
  9. while len(self.x_values) < self.walk_nums: # 直到轨迹坐标等于设置的移动次数为止
  10. x_direction = choice([-1, 1]) # x轴运动的方向,从-1,1中随机选择一个值
  11. x_distance = randint(0, 10) # x轴运动的距离
  12. x_step = x_direction * x_distance
  13. y_direction = choice([-1, 1]) # y轴运动的方向
  14. y_distance = randint(0, 10) # y轴运动的距离
  15. y_step = y_direction * y_distance
  16. if x_step == 0 and y_step == 0:
  17. continue # 略去坐标原点的值
  18. self.x_values.append(self.x_values[-1] + x_step) # 将生成的点添加到坐标列表汇总
  19. self.y_values.append(self.y_values[-1] + y_step)
  20. # 开始绘制图像
  21. randomwalk = RandomWalk(10000)
  22. randomwalk.move()
  23. point_numbers = range(randomwalk.walk_nums) # 绘图的时候用到这个参数,代表各个点的颜色都不尽相同,配合 cmap 参数使用。
  24. plt.scatter(randomwalk.x_values, randomwalk.y_values, c=point_numbers, cmap=plt.cm.Blues, edgecolors='none',
  25. s=15) # c 点的颜色个数,cmap 颜色值映射
  26. # 起点和终点高亮
  27. plt.scatter(randomwalk.x_values[0], randomwalk.y_values[0], c='red', s=100) # c代表颜色,s代表大小。
  28. plt.scatter(randomwalk.x_values[-1], randomwalk.y_values[-1], c='red', s=100)
  29. # 隐藏x、y轴
  30. plt.axes().get_xaxis().set_visible(True)
  31. plt.axes().get_yaxis().set_visible(True)
  32. # 显示运动轨迹图
  33. plt.show()

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI0NzU0MDYx_size_16_color_FFFFFF_t_70

发表评论

表情:
评论列表 (有 0 条评论,46人围观)

还没有评论,来说两句吧...

相关阅读

    相关 简单随机漫步

         最近在看用Python进行数据分析这本书,里面提到了随机漫步,所以试了试。      今天把代码放这里,以后随时可以看看。 \\\\\\\\\\\\\\\\\\一