Python中random产生的随机高斯函数值如何结合matplotlib进行作图
pthon3.7
4条回答 默认 最新
- honestman_ 2022-10-09 18:10关注
示例代码如下,如有帮助请点击一下采纳谢谢:
from random import choice, randint import matplotlib.pyplot as plt class RandomWalk(): def __init__(self, walk_nums=100): self.walk_nums = walk_nums # 移动的总次数 self.x_values = [0] # x轴方向轨迹坐标列表 self.y_values = [0] # y轴方向轨迹坐标列表 def move(self): while len(self.x_values) < self.walk_nums: # 直到轨迹坐标等于设置的移动次数为止 x_direction = choice([-1, 1]) # x轴运动的方向,从-1,1中随机选择一个值 x_distance = randint(0, 10) # x轴运动的距离 x_step = x_direction * x_distance y_direction = choice([-1, 1]) # y轴运动的方向 y_distance = randint(0, 10) # y轴运动的距离 y_step = y_direction * y_distance if x_step == 0 and y_step == 0: continue # 略去坐标原点的值 self.x_values.append(self.x_values[-1] + x_step) # 将生成的点添加到坐标列表汇总 self.y_values.append(self.y_values[-1] + y_step) # 开始绘制图像 randomwalk = RandomWalk(10000) randomwalk.move() point_numbers = range(randomwalk.walk_nums) # 绘图的时候用到这个参数,代表各个点的颜色都不尽相同,配合 cmap 参数使用。 plt.scatter(randomwalk.x_values, randomwalk.y_values, c=point_numbers, cmap=plt.cm.Blues, edgecolors='none', s=15) # c 点的颜色个数,cmap 颜色值映射 # 起点和终点高亮 plt.scatter(randomwalk.x_values[0], randomwalk.y_values[0], c='red', s=100) # c代表颜色,s代表大小。 plt.scatter(randomwalk.x_values[-1], randomwalk.y_values[-1], c='red', s=100) # 隐藏x、y轴 plt.axes().get_xaxis().set_visible(True) plt.axes().get_yaxis().set_visible(True) # 显示运动轨迹图 plt.show()
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报