前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Pyhton】随机漫步散点图

【Pyhton】随机漫步散点图

原创
作者头像
用户7718188
修改2021-10-08 15:38:06
4610
修改2021-10-08 15:38:06
举报
文章被收录于专栏:高级工程司高级工程司

from random import choice

class RandomWalk():

"""初始化随机漫步数据的类"""

def __init__(self, num_points=5000):

self.num_points = num_points

# 所有随机漫步都始于(0,0)

self.x_values = [0]

self.y_values = [0]

def fill_walk(self):

"""计算随机漫步包含的所有点"""

# 不断漫步,直到列表达到指定的长度

while len(self.x_values) < self.num_points:

# 决定前进方向以及沿这个方向前进的距离

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 and y_step == 0:

continue

# 计算下一个点的x和y值

next_x = self.x_values[-1] + x_step

next_y = self.y_values[-1] + y_step

self.x_values.append(next_x)

self.y_values.append(next_y)

import matplotlib.pyplot as plt

from random_walk import RandomWalk

# 解决不能显示中文

plt.rcParams['font.sans-serif'] = ['SimHei']

plt.rcParams['axes.unicode_minus'] = False

while True:

# 创建一个RandomWalk实例,并绘制

rw=RandomWalk(50000)

rw.fill_walk()

# 设置绘图窗口的尺寸

plt.figure(dpi=125,figsize=(10,6))

points_numbers=list(range(rw.num_points))

# 设置图表标题,并给坐标轴加上标签

plt.title("随机漫步图", fontsize=24)

plt.scatter(rw.x_values,rw.y_values,c=points_numbers,cmap=plt.cm.Blues,edgecolors='none',s=15)

# 隐藏坐标轴

#plt.gca().get_xaxis().set_visible(False)

#plt.gca().get_yaxis().set_visible(False)

#plt.show()

plt.savefig('sjmb.png',bbox_inches='tight')

keep_running=input("是否要再模拟一次随机漫步?(y/n):")

if keep_running=='n':

break

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档