• 函数功能:判定数据(或特征)的分布情况
  • 调用方法:plt.hist(x, bins=10, range=None, normed=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False)
  • 参数说明:
    • x:指定要绘制直方图的数据;
    • bins:指定直方图条形的个数;
    • range:指定直方图数据的上下界,默认包含绘图数据的最大值和最小值;
    • density:是否将直方图的频数转换成频率;
    • weights:该参数可为每一个数据点设置权重;
    • cumulative:是否需要计算累计频数或频率;
    • bottom:可以为直方图的每个条形添加基准线,默认为0;
    • histtype:指定直方图的类型,默认为bar,除此还有’barstacked’, ‘step’, ‘stepfilled’;
    • align:设置条形边界值的对其方式,默认为mid,除此还有’left’和’right’;
    • orientation:设置直方图的摆放方向,默认为垂直方向;
    • rwidth:设置直方图条形宽度的百分比;
    • log:是否需要对绘图数据进行log变换;
    • color:设置直方图的填充色;
    • label:设置直方图的标签,可通过legend展示其图例;
    • stacked:当有多个数据时,是否需要将直方图呈堆叠摆放,默认水平摆放;

一、绘制简单直方图: 默认为频数图,即纵轴表示频数

可通过参数density = True绘制频率图:

二、多组数据直方图:

data = np.random.randn(1000,2)
plt.hist(x = data,            # 绘图数据
        bins = 20,            # 指定直方图的条形数为20个
        edgecolor = 'w',      # 指定直方图的边框色
        color = ['c','r'],    # 指定直方图的填充色
        label = ['第一组','第二组'],     # 为直方图呈现图例
        density = False,      # 是否将纵轴设置为密度,即频率
        alpha = 0.6,          # 透明度
        rwidth = 1,           # 直方图宽度百分比:0-1
        stacked = False)      # 当有多个数据时,是否需要将直方图呈堆叠摆放,默认水平摆放
ax = plt.gca()                # 获取当前子图
ax.spines['right'].set_color('none')  # 右边框设置无色
ax.spines['top'].set_color('none')    # 上边框设置无色
# 显示图例
plt.legend()
# 显示图形
plt.show()

当参数stacked = True时:

三、绘制累计频率直方图 :通过参数cumulative = True绘制

data = np.random.randn(1000)
plt.hist(data, # 绘图数据
        bins = 20, # 指定直方图的组距
        density = True, # 设置为频率直方图
        cumulative = True, # 积累直方图
        color = 'steelblue', # 指定填充色
        edgecolor = 'w', # 指定直方图的边界色
        label = '直方图')# 为直方图呈现标签
# 设置坐标轴标签和标题
plt.title('累计频率直方图')
plt.xlabel('x轴')
plt.ylabel('累计频率')
# 显示图例
plt.legend(loc = 'best')
# 显示图形
plt.show()

四、密度图(频率图): 密度图经常跟直方图一起使用,而在matplotlib中没有单独绘制密度图的函数,笔者目前知道两种绘制密度图的方法:

1)通过pandas(数据分析与统计模块),将数据转换成series或dataframe,然后绘图:

import pandas as pd
x = np.random.randn(1000)
data = pd.Series(x)  # 将数据由数组转换成series形式
plt.hist(data,density = True,edgecolor ='w',label = '直方图')
data.plot(kind = 'kde',label = '密度图') 
# 显示图例
plt.legend()
# 显示图形
plt.show()

2)通过seaborn(matplotlib的高级接口模块)的kdeplot函数绘制密度图:

import seaborn as sns
x = np.random.randn(1000)
plt.hist(data,density = True,edgecolor ='w',label = '直方图')
sns.kdeplot(x,label = '密度图')
# 显示图例
plt.legend()
# 显示图形
plt.show()
(1) hist type参数(设置样式bar、barstacked、step、stepfilled) (2)range参数(指定 直方图 数据的上下界,默认包含绘 数据的最大值和最小值(范围)) (3)orientation参数 (设置 直方图 的摆放位置,vertical垂直方向 horizontal水平方向,默认值:vertical垂直方向) (4)density参数(bool值
📊【 plt . hist 直方图 精通指南】🎯从 Matplotlib 可视化 小白到高手的跃迁之路!🚀 🔥一文掌握 plt . hist ()绘制 直方图 的精髓!📈从基础到进阶技巧,带你玩转 数据可视化 !🎨 🌟轻松掌握自定义 直方图 外观,让你的 表脱颖而出!💡多组数据同 展示,一 胜千言!📊 📚参考文档和相关链接一应俱全,助你快速成长为 数据可视化 达人!🌱 🚀无论你是数据分析师、数据科学家还是机器学习爱好者,这篇文章都是你的不二之选!💪 快来加入我们,一起探索数据背后的故事。
plt . hist (): 直方图 ,一种特殊的柱状 。 将统计值的范围分段,即将整个值的范围分成一系列间隔,然后计算每个间隔中有多少值。 直方图 也可以被归一化以显示“相对”频率。 然后,它显示了属于几个类别中的每个类别的占比,其高度总和等于1。 import matplotlib as mpl import matplotlib .pyplot as plt from matplotlib .pyplot import
plt . hist ()具体作用: 如 所示,左栏是数字value。右栏是频数frequency。现在我将0~5这个区间划分为10个bin(箱子),每个箱子的大小都为0.5。如下 最右侧所示。 可以看到, 中的数字所对应的频数会按照Bins的所标识的数字的不同进行相加。 plt . hist ()也就是这个作用。将一个大区间划分为等间隔的小区间,并统计每个区间上样本出现的频数之和。 reviews = pd.read_csv('fandango_scores.csv') cols = ['FILM', 'RT
bins是一个int型数字,表示分成几份 interval = (a_max-a_min)/bins,表示每份的长度 生成[a_min, a_min+interval, a_min+interval2,…,a_min+intervalbins]的坐标轴 统计的时候,除了最后一份两端包含,其他的只有左包含,如下 所示: np. hist ogram和 plt . hist 是类似的,前者返回的是值,后者画出 直方图 。 import
要画 直方图 ,可以使用 Python Matplotlib 库中的 hist 函数。在使用 hist 函数时,可以通过指定bins参数来设置数据的范围,例如: ``` python import matplotlib .pyplot as plt import numpy as np # 生成1000个随机数 data = np.random.randn(1000) # 设置数据范围为[-3, 3] bins = np.linspace(-3, 3, 21) # 画 直方图 plt . hist (data, bins=bins) plt .show() 在上面的代码中,通过np.linspace函数生成了一个范围为[-3, 3],包含21个数的数组,作为bins参数传递给了 hist 函数。这样就可以限定数据的范围了。 需要注意的是,在设置bins参数时,要根据数据的范围和数量来选择合适的值,以便展示数据的分布情况。如果bins设置过多或过少,都可能会导致 直方图 不够准确或者过于密集。
北风之神c: 总结的很全面,写得赞,博主用心了。 此国产日志 https://nb-log-doc.readthedocs.io/zh-cn/latest/articles/c1.html 使用原生 loggng封装,兼容性和替换性100%,只需要一行代码大幅简化logging的使用。 1、日志能根据级别能够自动变彩色。 2、print自动变彩色。 3、日志和print在pycahrm控制台的输出都自动可以点击跳转到文件和行号。 4、多进程日志切割安全,文件日志写入性能高 。 5、入参简单,能一键自动记录到多种地方。 6、 nb_log 兼容包含loguru色彩模式,loguru只是nb_log的子集之一. 相比 loguru 有10胜。 pip install nb_log 。 目标检测项目中面对高分辨率图像的滑动窗口技术(一)(代码开源,超简便API封装,直接调用进行切图及保存) B580066: 请问有大神可以解答一下吗?为什么我最后永远只有一个切图,行数和列数都是1。子图尺寸为8192× 6000。切图尺寸是640×640 YOLOV5 6.x 使用cutout数据增强 CC_i: 取消注释后报错未解析的引用 'cutout' ,这是因为没有导入什么吗? 目标检测项目中面对高分辨率图像的滑动窗口技术(二)(代码开源,超简便API封装,直接调用进行切图及保存) 小文大数据: 目标检测项目中面对高分辨率图像的滑动窗口技术(二)(代码开源,超简便API封装,直接调用进行切图及保存) 小文大数据: 切图后就是新的数据集 拿来什么模型训练都行