📜  plt.hist bins - Python (1)

📅  最后修改于: 2023-12-03 15:33:43.483000             🧑  作者: Mango

Python中用于绘制直方图的plt.hist()函数

在Python中,有一个非常强大的数据可视化库matplotlib,它的功能非常丰富,包括绘制直方图(histogram)。而matplotlib中的plt.hist()函数就是用于绘制直方图的,它能够根据给定的数据,将数据分组并统计出每个组中的数据个数,然后用柱形图的形式进行展示。

函数语法

函数的语法如下:

plt.hist(x, bins=None, range=None, density=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, normed=None, *, data=None, **kwargs)

参数说明

  • x: 待绘制直方图的数据
  • bins: 直方图的组数,默认为10
  • range: 直方图数据的范围,也就是x轴的取值范围,默认为整个数据集的取值范围
  • density: 是否将直方图统计出的数据标准化,默认为False
  • weights: 每个数据点的权重(或已经归一化的值)
  • cumulative: 是否绘制累计频率直方图,默认为False
  • bottom: 直方图中的每个组最下面的值,默认为0
  • histtype: 直方图的类型,包括'bar'、'barstacked'、'step'、'stepfilled'
  • align: 直方图的位置,默认为'mid',而'left'表示左对齐,'right'表示右对齐
  • orientation: 直方图的方向,默认为'vertical',而'horizontal'表示水平方向
  • rwidth: 直方图柱形的宽度,默认为None,表示自动设置宽度
  • log: 是否绘制以10为底的对数刻度直方图,默认为False
  • color: 直方图柱形的颜色
  • label: 直方图的标签
  • stacked: 是否堆叠直方图,默认为False
  • normed: 同density,已被废弃
  • data: 直方图数据的数据来源
  • **kwargs: 其他关键字参数
例子
import numpy as np
import matplotlib.pyplot as plt

# 生成随机正态分布样本数据
np.random.seed(0)
mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)

# 绘制直方图
plt.hist(x, bins=50, density=True, alpha=0.6, color='g')

# 设置坐标轴标签和图名
plt.xlabel('Smarts')
plt.ylabel('Probability density')
plt.title('Histogram of IQ')

# 显示图形
plt.show()

上面代码的例子展示了如何使用plt.hist()函数绘制以100为均值、15为标准差的正态分布直方图,分为50组,其中density参数表示对直方图的数据进行标准化,alpha参数控制直方图的透明度。

最终的图形如下所示:

plt.hist()函数绘制的正态分布直方图

以上述代码为例,你可以根据自己的需求来调整直方图的参数,进而绘制出符合你需求的直方图。