没有合适的资源?快使用搜索试试~ 我知道了~
python之matplotlib.pyplot迭代累积绘制曲线问题及解决办法
11 下载量 108 浏览量
2020-12-22
07:01:41
上传
评论
收藏 112KB PDF 举报
温馨提示


试读
2页
查阅资料及他人提醒,发现pyplot在循环语句下重复绘制图形时,每次都会迭代绘制使得前面绘制过的曲线累积在新绘制图中,而不是如我们所想单独绘制。 问题来源:python之随机漫步模拟 解决方法:在绘图命令前加pyplot.cla()清除上一个坐标轴或者pyplot.close()直接关闭上一个图表重新制图 更改后: from random import choice as choice import matplotlib.pyplot as plt for i in range(10): class RandomWalk(): def __init__(self,num
资源推荐
资源详情
资源评论























python之之matplotlib.pyplot迭代累积绘制曲线问题及解决办法迭代累积绘制曲线问题及解决办法
查阅资料及他人提醒,发现pyplot在循环语句下重复绘制图形时,每次都会迭代绘制使得前面绘制过的曲线累积在新绘制图
中,而不是如我们所想单独绘制。
问题来源:python之随机漫步模拟
解决方法:在绘图命令前加pyplot.cla()清除上一个坐标轴或者pyplot.close()直接关闭上一个图表重新制图
更改后:
from random import choice as choice
import matplotlib.pyplot as plt
for i in range(10):
class RandomWalk():
def __init__(self,num_points=5000):
self.num_points = num_points
self.x_values = [0] self.y_values = [0]
def fill_walk(self):
while len(self.x_values) < self.num_points:
x_direction = choice([-3, 3])
x_distance = choice([0, 1, 2, 3, 4])
x_step = x_direction * x_distance
y_direction = choice([-3, 3])
y_distance = choice([0, 1, 2, 3, 4])
y_step = y_direction * y_distance
if x_step == 0 and y_step == 0:
continue
#self.x_values[-1]表示上一步的最后位置,正如其含义,下一步=上一次的最后位置+这次的步长变化
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)
plt.cla()
rw = RandomWalk()
rw.fill_walk()
plt.scatter(rw.x_values,rw.y_values,s=5,edgecolor='none')
plt.savefig("C:/Users/28654/Desktop/Matplotlib Datas/picture"+str(i+1))
结果:
补充:
cla() #clear axes
资源评论


weixin_38530536
- 粉丝: 4
- 资源: 971
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
