python-3.x - matplotlib 直方图上的意外图
问题描述
我是 matplotlib 的初学者,如果这似乎是一个愚蠢的问题,我深表歉意。
我有一个 csv 文件,其中包含深度学习模型不同层中单个神经元的权重值。由于我的模型中有四层,文件结构如下所示:
weight_1,weight_2……weight_n
weight_1,weight_2……weight_n
weight_1,weight_2……weight_n
weight_1,weight_2……weight_n
我想从每一层中提取权重并从中生成分布。我已经有它的代码并且它正在工作,但是对于某些时期,直方图有一些奇怪的颜色,看起来像更多的直方图。我附上了带有问题的示例图片。
正如你所看到的,有一些粉红色的部分被直方图的蓝色块所掩盖。有人可以帮我理解那是什么吗?
我的代码目前看起来像这样(假设我的文件已加载到阅读器中):
for row in csv_reader:
a = np.array(row)
a_float = a.astype(np.float)
plt.hist(a_float,bins=20)
plt.xlabel("weight_range")
plt.ylabel("frequency")
请注意,完成循环后会生成四个不同的图(图像),因为 csv 文件有四行。我只发布了其中一个的示例图像。我没有尝试在一张图中绘制所有行。
编辑
我减少了垃圾箱的数量,现在它更加突出。我正在附加另一个示例图像。
解决了
在循环内添加 plt.figure() 解决了它。请查看下面的评论和答案以获取详细信息。更新后的循环应该如下:
for row in csv_reader:
a = np.array(row)
a_float = a.astype(np.float)
plt.figure()
plt.hist(a_float,bins=20)
plt.xlabel("weight_range")
plt.ylabel("frequency")
plt.close()
解决方案
推荐阅读
- php - 嗨,我们正在使用 Laravel Jwt Auth 说未提供错误令牌
- docker - Docker 集群规模
- php - 将阿拉伯语参数传递给 PHP exec
- django - 如何从 Django 的管理日志中添加可排序的列
- javascript - Django-Ajax:使用包含文件字段的 AJAX 提交表单,给我 500 错误:“FieldFile”类型的对象不是 JSON 可序列化的
- python - 如何使用 iterrows 和 iteritems 更快地运行这个 pandas for 循环
- javascript - 具有固定列的响应式水平滚动表
- sql - 对 Vertica 中的查询的 OFFSET 影响
- node.js - nodemon自动重新加载不适用于docker
- colors - 不同颜色图像的 Openlayer 聚类