Matplotlib直方图

目录

什么是直方图

直方图hist()函数

直方图hist()函数的应用


什么是直方图

直方图(英语:Histogram)是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对应的某个属性的度量,以长条图(bar)的形式具体表现。

直方图与条形图的区别:

  • 条形图是用条形的长度表示各类别频数的多少,而宽度(表示类别)是固定的,没有实际的数值意义。
  • 直方图是用面积表示各组频数的多少,条形的长度表示每一组的频数或频率,条形的宽度表示各组的组距,所以直方图中条形的长度和宽度都是有实际的数值意义的。
  • 条形图描述分类变量,直方图描述数值变量。
  • 由于分组数据具有连续性,直方图的各矩形通常是连续排列,而条形图则是分开排列的

直方图:

条形图:

直方图hist()函数

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

x参数:必填参数,数组或者数组序列

bins参数:将数据分成几组,它接收的参数可以是整数,也可以是序列,还可以是字符串,常用的是整数和序列。默认为生成10个间隔。

  • 如果是整数n,则表示要将所有数据平均分成n组进行绘图。
  • 如果是序列,则是指定每一组的临界值

range参数:指定全局间隔的下限与上限值 (min,max),元组类型,默认值为 None。

density参数:如果为 True,返回概率密度直方图;默认为 False,返回相应区间元素的个数的直方图。

weights参数:与x形状相同的权重数组;将x中的每个元素乘以对应权重值再计数;如果density取值为True,则会对权重进行归一化处理。

cumulative参数:如果为 True,返回累积直方图;默认为 False,返回累计直方图。

histtype参数:要绘制的直方图类型,默认值为“bar”,可选值有 barstacked(堆叠条形图)、step(未填充的阶梯图)、stepfilled(已填充的阶梯图)。

facecolor:设置长条形颜色关键字。

edgecolor:设置边框的颜色关键字。

bins:设置长条形数目,默认为10。

alpha:设置透明度,默认为0,取值范围为0~1。

直方图hist()函数的应用

bins参数: 

import numpy as np
import matplotlib.pyplot as plt

# bins为默认值10。(图一)
fig=plt.figure(figsize=(9,4))  # 画布 #figsize=(9,4):设置画布的大小。
ax=plt.axes() # axes对象,在这子图中画图。

x=np.random.randint(0,10,100)
plt.hist(x)

plt.show()

# bins为指定值4。(图二)
fig=plt.figure(figsize=(9,4))  # 画布 #figsize=(9,4):设置画布的大小。
ax=plt.axes() # axes对象,在这子图中画图。

x=np.random.randint(0,10,100)
plt.hist(x,bins=4)  #将数据分成四组

plt.show()

 图一:

 图二:

 range参数:

fig=plt.figure(figsize=(9,4))
ax=plt.axes()

plt.hist(x,bins=4,range=(0,6))

plt.show()

 range参数的默认值效果图如图二。

图三: 

 density参数:

fig=plt.figure(figsize=(9,4))
ax=plt.axes()

plt.hist(x,bins=4,range=(0,6),density=True)

plt.show()

density参数的默认值如图三。

图四:

weights参数:

fig=plt.figure(figsize=(9,4))
ax=plt.axes()

x =np.random.randint(0,10,100)
ratio=1/sum(x)
x1=x*ratio

plt.hist(x,bins=4,range=(0,6),density=True,weights=x1)

plt.show()

weights参数的默认值如图四。

图五:

 cumulative参数:

fig=plt.figure(figsize=(9,4))
ax=plt.axes()

x =np.random.randint(0,10,100)
ratio=1/sum(x)
x1=x*ratio

plt.hist(x,bins=4,range=(0,6),density=True,weights=x1,cumulative=True)

plt.show()

cumulative参数的默认值如图五。

图六:

 histtype参数:

fig=plt.figure(figsize=(9,4))
ax=plt.axes()

x =np.random.randint(0,10,100)
ratio=1/sum(x)
x1=x*ratio

plt.hist(x,bins=4,range=(0,6),density=True,weights=x1,cumulative=True,histtype="barstacked")

plt.show()

histtype参数的默认值如图六。

图七:histtype="barstacked"(堆叠条形图)

 图八:histtype="step"(未填充的阶梯图)

fig=plt.figure(figsize=(9,4))
ax=plt.axes()

x =np.random.randint(0,10,100)
ratio=1/sum(x)
x1=x*ratio

plt.hist(x,bins=4,range=(0,6),density=True,weights=x1,cumulative=True,histtype="step")

plt.show()

  图八:histtype="stepfilled"(已填充的阶梯图)

fig=plt.figure(figsize=(9,4))
ax=plt.axes()

x =np.random.randint(0,10,100)
ratio=1/sum(x)
x1=x*ratio

plt.hist(x,bins=4,range=(0,6),density=True,weights=x1,cumulative=True,histtype="stepfilled")

plt.show()

 facecolor:

fig=plt.figure(figsize=(9,4))
ax=plt.axes()

x =np.random.randint(0,10,100)
ratio=1/sum(x)
x1=x*ratio

plt.hist(x,bins=4,range=(0,6),density=True,weights=x1,cumulative=True,
         histtype="barstacked",facecolor="red")

plt.show()

facecolor的默认值如图七。

图九:

edgecolor:

fig=plt.figure(figsize=(9,4))
ax=plt.axes()

x =np.random.randint(0,10,100)
ratio=1/sum(x)
x1=x*ratio

plt.hist(x,bins=4,range=(0,6),density=True,weights=x1,cumulative=True,
         histtype="barstacked",facecolor="red",edgecolor="b")

plt.show()

 edgecolor的默认值如图九。

图十:

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值