您的当前位置:首页正文

python如何画直方图

2024-08-01 来源:骅佗教育

matplotlib.pyplot直方图画起来还是非常方便的,思路还是准备好数据,然后设置参数即可。

直方图(Histogram)又称质量分布图。是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据类型,纵轴表示分布情况。 

直方图是数值数据分布的精确图形表示。 这是一个连续变量(定量变量)的概率分布的估计,并且被卡尔·皮尔逊(Karl Pearson)首先引入。它是一种条形图。 为了构建直方图,第一步是将值的范围分段,即将整个值的范围分成一系列间隔,然后计算每个间隔中有多少值。 这些值通常被指定为连续的,不重叠的变量间隔。 间隔必须相邻,并且通常是(但不是必须的)相等的大小。

直方图是调用的matplotlib.pyplot.hist模块

matplotlib.pyplot.hist的参数:

matplotlib.pyplot.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 )

hist的参数详解

x : (n,)数组或序列(n,)数组

输入值,这需要单个数组或不需要具有相同长度的数组序列

bins : 整数或序列或’auto’可选,默认是没有

如果一个整数,bins +1,则计算并返回bin边缘,与之一致numpy.histogram()

range : 元组或没有可选的,默认是没有

箱子的上下范围。上下异常值将被忽略。如果没有提供,范围是(x.min(),x.max())。如果箱子是一个序列没有影响范围 
如果指定箱是一个序列或范围,自动定量是基于指定本范围而不是x的范围。

density :可选布尔类型

如果这是真的,返回第一个元素的元组将计数归一化形成一个概率密度,即。,面积(或积分)根据直方图将之和为1。这是通过将整个计算
观测的数量乘以本宽度,而不是除以总数量的观察。如果堆也是真的,直方图之和是标准化为1。 
默认是没有赋范和密度。如果设置,那么将使用这个值。如果没有设置,那么参数将被视为错误的

weights:可选择相同的数据或者没有

数组的重量、形状相同的x。每个值x只贡献相关重量对箱数(而不是1)。如果赋范或密度是真的,权重归一化,这样的积分密度范围是1。

cumulative:可选布尔类型

如果True,则计算直方图,其中每个bin给出该bin中的计数加上较小值的所有bin。最后一个bin给出了数据点的总数。如果赋范或密度 
也True然后直方图归一化,使得最后仓等于1。如果累计计算结果为小于0(例如,-1),累积的方向被反转。在这种情况下,如果赋范
和/或密度也是True,则直方图归一化,使得第一仓等于1。 
默认是 False

bottom:相同数组,标量或者没有

每个仓的底部基线的位置。如果是标量,则每个bin的基线移动相同的量。如果是一个数组,每个bin都是独立移动的,底部的长度必须
与bin的数量相匹配。如果为None,则默认为0。默认是 None

histtype : {‘bar’,’barstacked’,’step’,’stepfilled’},可选

要绘制的直方图的类型 
‘bar’是传统的条形直方图。如果给出多个数据,则条并排排列。 
‘barstacked’是一种条形直方图,其中多个数据堆叠在一起。 
‘step’生成一个默认未填充的线图。 
‘stepfilled’生成一个默认填充的线图。 
默认为’bar’

align : {‘left’,’mid’,’right’},可选

控制直方图的绘制方式。 
‘left’:条形图位于左边框边缘的中心。 
‘mid’:条在bin边缘之间居中。 
‘right’:条形图位于右侧边框的中心。 
默认为’mid’

orientation : {‘horizontal’,’vertical’},可选

如果是’horizontal’,barh将用于条形直方图,底部 kwarg将用于左边缘

log : 布尔值,可选

如果True,直方图轴将设置为对数刻度。如果 log是True且x是1D数组,则将过滤掉空箱,并且仅 返回非空。(n, bins, patches).
默认是 False

color :颜色

颜色规格或颜色规格序列,每个数据集一个。Default(None)使用标准线颜色序列.默认是 None

实例:

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(19680801)
mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)
n, bins, patches = plt.hist(x, 50, density=True, facecolor='g', alpha=0.75)

plt.xlabel('Smarts')
plt.ylabel('Probability')
plt.title('Histogram of IQ')
plt.text(60, .025, r'$\mu=100,\ \sigma=15$')
plt.axis([40, 160, 0, 0.03])
plt.grid(True)
plt.show()

效果图:

骅佗教育还为您提供以下相关内容希望对您有帮助:

【Python可视化系列】一文教会你绘制美观的直方图(理论+源码)_百度知...

直接了解如何绘制美观的Python直方图?本文带你一步步实现!直方图可视化基础对于连续变量的分布分析,直方图是最基本的图形。它分为两个步骤:一,将数据按范围分组并统计每个组的人数;二,通过条形图形式展示数据分布。直方图有助于直观判断数据的分布情况,尤其是在统计假设中的正态分布检验。plt.hist()函...

Python绘制图表示例-简单直方图

具体步骤如下:首先,导入matplotlib库,然后准备一组数据,接着调用其hist()函数,设置合适的参数如bins(数据分组数),最后通过show()函数展示我们的直方图。让我们通过代码一步步揭示这个过程,直观呈现数据的频率分布。下面是一个简单的代码示例,展示如何创建一个直方图:python import matplotlib.pyplot ...

使用Python画出直方图

对于更具体的场景,比如股票市场的涨跌幅,可能需要创建更细致的bin,这时可以利用Python的列表解析来生成多个范围。如bins=[n/100 for n in range(-100, 100, 5)],这样可以快速创建以5%为单位的涨跌幅区间。为了增强图表的可读性,添加图形注释是必要的。matplotlib.pyplot.annotate函数可以帮助我们在...

【opencv-python】图像灰度直方图计算与绘制

要计算和绘制图像灰度直方图,可以使用 OpenCV 的函数 cv2.calcHist()。这个函数需要提供图像、通道索引、范围、直方图深度等参数。例如,要分别对一个 RGB 图像的 R、G、B 通道计算灰度直方图,可以编写如下代码:python import cv2 import numpy as np import matplotlib.pyplot as plt 加载图像 image ...

Python从零到壹丨图像增强及运算:图像掩膜直方图和HS直方图

一. 图像掩膜直方图 要统计图像的特定部分直方图,需要使用掩膜进行计算。设定要统计区域为白色,其余区域为黑色,利用此掩膜绘制直方图,代码示例如下:运行结果如图1所示,使用了200×200像素的掩膜。图1(a)为原始图像,图1(b)为200×200像素掩膜,图1(c)为原始图像经掩膜处理后,图1(d)为直方图曲线...

如何用python对一个excel表中的所有列都做直方图的分布处理,每个列一...

import pandas as pd import matplotlib.pyplot as plt 读取Excel表格数据 data = pd.read_excel('your_file.xlsx')遍历每一列,生成直方图 for column in data.columns:绘制直方图 plt.hist(data[column], bins=10) # 这里的bins可以根据需要进行调整 设置图表标题和坐标轴标签 plt.title(f'...

python绘制直方图设置y数量

python绘制直方图设置y数量需要用到matplotlib_pyplot_hist方法。Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和...

直方图知道每组频数如何用python画出直方图

from pyecharts import Bar bar = Bar('我的第一个图表','这里是副标题')kwargs = dict( name = '柱形图', x_axis = ['衬衫','羊毛衫','雪纺衫','裤子','高跟鞋','袜子'], y_axis = [5,20,36,10,75,90])bar.add(**kwargs)bar.render('bar01.html')

python:5种正态性检验方法

1.直方图 由于正态分布具有非常典型的中间高,两边低的图形特征,如果样本数据并不服从正态分布,我们可以通过直方图很快地分辨出来。更进一步地,Python可以辅助生成基于样本数据估计的正态曲线,这样就容易辅助我们进行判断。图形观察虽然直观,但是部分研究者认为单纯观察图形过于主观,因此我们也可以选择使用...

通常制作一张直方图的方法有几种

制作一张直方图的方法通常有以下几种:1.手动制作:通过在数据表或数据集中逐一选中各个类别,统计出现频数,再用图形工具画出直方图。这种方法适用于数据量较小且数据集结构明确的情况。2.使用Excel等工具自动生成:这些工具通常提供自动统计功能,只需输入数据即可生成直方图。这种方法适用于数据量较大且数据...