当前位置: 首页 > 知识库问答 >
问题:

matplotlib直方图上的意外绘图

汪安然
2023-03-14

我是matplotlib的初学者,如果这看起来像一个愚蠢的问题,我很抱歉。

我有一个csv文件,其中包含深度学习模型不同层中单个神经元的权重值。由于我的模型中有四个层,因此文件结构如下所示:

weight_1weight_2weight_n

weight_1weight_2weight_n

weight_1weight_2weight_n

weight_1weight_2weight_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()

共有1个答案

贺山
2023-03-14

我试图重现您的错误,很可能您正在一个绘图中绘制多个直方图:

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np

arrays = np.array([np.random.random() for i in range(200)]).reshape(2, 100)

fig = plt.figure()
ax = fig.add_subplot(111)
for array in arrays:
    ax.hist(array, bins = 20)
 类似资料:
  • numpy.histogram()函数将输入数组和作为两个参数。 bin数组中的连续元素用作每个bin的边界。 Matplotlib 可以将直方图的数字表示转换为图形。 pyplot子模块的plt()函数将包含数据和数组的数组作为参数,并转换为直方图。

  • 本文向大家介绍python matplotlib库直方图绘制详解,包括了python matplotlib库直方图绘制详解的使用技巧和注意事项,需要的朋友参考一下 例题:假设你获取了250部电影的时长(列表a中),希望统计出这些电影时长的分布状态(比如时长为100分钟到120分钟电影的数量,出现的频率)等信息,你应该如何呈现这些数据? 一些概念及问题: 把数据分为多少组进行统计 组数要适当,太少会

  • 直方图(Histogram),又称质量分布图,它是一种条形图的一种,由一系列高度不等的纵向线段来表示数据分布的情况。 直方图的横轴表示数据类型,纵轴表示分布情况。 首先,我们需要了解柱状图和直方图的区别。直方图用于概率分布,它显示了一组数值序列在给定的数值范围内出现的概率;而柱状图则用于展示各个类别的频数。 例如,我们对某工厂的员工年龄做直方图统计,首先我们要统计出每一位员工的年龄,然后设定一个

  • 有没有一种惯用的方法来绘制两个类的特征直方图?在熊猫方面,我基本上想要 在同一个情节中。我可以 但这给了我两个不同的情节。 这似乎是一项常见的任务,因此我认为有一种惯用的方法来完成这项任务。当然,我可以手动操作柱状图,使其彼此相邻,但熊猫通常都能很好地做到这一点。 基本上,我希望将这个matplotlib示例放在一行熊猫中:http://matplotlib.org/examples/pylab_

  • 我正在使用python中的matplotlib绘制直方图,并希望绘制一条代表数据集平均值的线,以虚线的形式覆盖在直方图上(或者其他颜色也可以)。关于如何在柱状图上画一条线有什么想法吗? 我正在使用plot()命令,但不确定如何绘制垂直线(即,我应该为y轴指定什么值? 谢谢

  • 给定一个信号的时间表示图,如何画出相应的时间指标线? 具体来说,给定一个时间索引范围为0到2.6(s)的信号图,我想画垂直红线,指示列表的相应时间索引,我该怎么做?