matplotlib--hist直方图

matplotlib.pyplot.hist(x, bins=None, density=None, alpha,
                       histtype='bar', color=None)

hist的常用参数介绍

  • x:输入数据,直方图对数据x分区间统计
  • bins:统计的区间分布,形如 [0,2,4,6],则统计x在区间[0,2]、[2,4]、[4,6]的频数
  • density:bool型,默认为false,即显示频数,true显示频率,注意频率的计算方法是
    该 区 间 频 数 样 本 总 数 ⋅ 区 间 宽 度 \frac{该区间频数}{样本总数\cdot 区间宽度}
  • histtype: 直方图形状,可选{‘bar’, ‘barstacked’, ‘step’, ‘stepfilled’}之一,默认为bar
  • alpha:透明度,0表示完全透明

Example

import numpy as np
import matplotlib.pyplot as plt
lim = 4
width = 0.4
x = np.random.normal(0, 1, 10000)  # 生成均值为0,方差为1的正太分布点10000个
bins = np.arange(-lim, lim, width)  # 设置直方图的分布区间 start->end step
# 直方图会进行统计各个区间的数值
frequency_each, _1, _2 = plt.hist(x,
                                  bins,
                                  color='fuchsia',
                                  alpha=1,
                                  density=True)  # alpha设置透明度,0为完全透明
plt.xlim(-lim, lim)  # 设置x轴分布范围
plt.show()

在这里插入图片描述
函数会返回统计频率或频数frequency_each,可以用来拟合密度曲线,加入如下语句。注意bins的长度比frequency_each多1,因为bins是边界点,所以可以从bins的第2个元素开始,计算frequencyeach中每个元素对应的中心点,将其作为横坐标,frequency_each作为纵坐标绘制密度曲线

lim = 4
band_h = 0.4  # 间隔宽度
x = np.random.normal(0, 1, 10000)  # 生成均值为0,方差为1的正太分布点10000个
bins = np.arange(-lim, lim, band_h)  # 设置直方图的分布区间 start->end step
# 直方图会进行统计各个区间的数值
cnts = plt.hist(x,
                bins,
                color='fuchsia',
                alpha=1,
                density=True)  # alpha设置透明度,0为完全透明
plt.xlim(-lim, lim)  # 设置x轴分布范围
plt.plot(cnts[1][1:] - band_h / 2, cnts[0])
plt.show()

在这里插入图片描述
也可以直接返回统计频率

lim = 4
band_h = 0.4
x = np.random.normal(0, 1, 10000)  # 生成均值为0,方差为1的正太分布点10000个
bins = np.arange(-lim, lim, band_h)  # 设置直方图的分布区间 start->end step
# 直方图会进行统计各个区间的数值
cnts = plt.hist(x,
                bins,
                color='fuchsia',
                alpha=1)  # alpha设置透明度,0为完全透明
plt.xlim(-lim, lim)  # 设置x轴分布范围
plt.plot(cnts[1][1:] - band_h / 2, cnts[0])
plt.show()

在这里插入图片描述

  • 7
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: matplotlib hist 直方图是一种用于可视化数据分布的图表类型。它将数据分成一系列的区间(称为“bin”),并计算每个区间内数据的频率。然后,它将这些频率绘制成一个条形图,其中每个条形表示一个区间。直方图可以帮助我们了解数据的分布情况,例如数据的中心趋势、偏斜度和峰度等。在matplotlib中,我们可以使用hist()函数来创建直方图。 ### 回答2: matplotlib 是一个应用广泛的 Python 数据可视化库,其中 hist 函数可以用来绘制直方图直方图是一种用于展示连续型数据分布的图表,通常用于了解数据的分布情况。下面将对 matplotlib 中的 hist 函数进行简要介绍和应用举例。 matplotlibhist 函数可以接受一维的数组作为输入数据,通过将数据划分到不同的区间(bin),并在每个区间内统计数值的数量,生成直方图hist 函数的常见参数包括: - x: 输入的数组数据; - bins: 区间的数量或者区间的边界; - range: 希望展示的数据范围; - density: 是否将直方图转化为概率密度; - cumulative: 是否展示累计直方图。 为了更好的理解 hist 的使用方法,我们着重介绍 bins 和 density 两个参数。 bins 参数决定划分的区间数量或者边界。如果 bins 是一个整数,则将数据平均分为该数量的区间;如果 bins 是一个序列,则使用该序列作为区间的边界;如果 bins 是字符串“auto”,则会尝试选择最优的区间边界。以下是一个简单的使用 bins 参数的例子: ```python import numpy as np import matplotlib.pyplot as plt data = np.random.randn(1000) plt.hist(data, bins=20) plt.show() ``` 该程序将使用 20 个平均的区间,将 data 数组的值划分为不同的区间,并展示其分布情况。我们可以通过调整 bins 的值来观察直方图的变化。如将 bins 参数修改为 10,则会使用 10 个平均的区间: ```python plt.hist(data, bins=10) ``` density 参数可以将直方图转化为概率密度。在默认情况下,hist 函数会统计每个区间内的数量,并将其作为 y 轴的值;如果 density 参数为 True,则将每个区间内的数值除以所有数值之和,得到的值为该区间内的概率密度。以下是一个使用 density 参数的例子: ```python x = np.random.normal(0, 1, size=1000) plt.hist(x, bins=50, density=True) plt.show() ``` 上述程序将生成一个随机正态分布的样本数据,将其分为 50 个区间,并绘制了概率密度直方图。通过 density 参数,我们可以更好地观察到数据的分布情况。 除了 bins 和 density 参数,hist 函数还支持一些其他的定制选项,比如设置边框颜色、修改标签、更改柱状图宽度等等。通过深入学习这些选项,我们可以更好地掌握 matplotlibhist 函数,并用于数据分析和可视化任务中。 ### 回答3: Matplotlib 是一款流行的 Python 可视化库,具有丰富的绘图功能。在 Matplotlib 中,`hist()` 方法可以用来绘制直方图直方图是一种常用的数据可视化方式,主要用于展示数值型数据的分布情况。它可以将一组数据分成若干个区间(也叫“箱子”或“面元”),并统计每个区间内数据的个数。画出的图形会呈现出数据的分布情况,有助于帮助我们分析数据的特征。 在使用 Matplotlib 绘制直方图时,主要需要指定一组数据以及需要将数据分成的区间数。常用的绘图参数包括: - `bins`:指定区间数量。如果不指定,则默认为 10。 - `color`:指定直方图的颜色。 - `alpha`:指定直方图透明度。 - `range`:指定将数据分成区间时的范围。 - `density`:是否对 y 轴进行标准化。 以下是一个简单的绘制直方图的例子: ```python import matplotlib.pyplot as plt import numpy as np # 生成一组随机数据 data = np.random.randn(1000) # 绘制直方图 plt.hist(data, bins=20, color='skyblue', alpha=0.8) # 添加坐标轴标签和图标题 plt.xlabel('Value') plt.ylabel('Frequency') plt.title('Histogram of Random Data') # 显示图形 plt.show() ``` 此代码会生成一个随机数据的直方图。其中,`data` 变量存储了 1000 个标准正态分布的随机数,`bins` 指定将数据分成 20 个区间,`color` 指定直方图的颜色为淡蓝色,`alpha` 指定直方图的透明度为 0.8。绘制好直方图后,添加了 x 轴和 y 轴标签,以及图标题,最后显示图形。 除了基本的参数之外,`hist()` 方法还可以接受很多其他的关键字参数,包括`cumulative`、`histtype`、`weights` 等等。通过灵活运用这些参数,我们可以绘制出更加丰富和复杂的直方图,用于展示数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值