200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > python直方图教程_Matplotlib绘制直方图

python直方图教程_Matplotlib绘制直方图

时间:2019-07-18 02:38:11

相关推荐

python直方图教程_Matplotlib绘制直方图

直方图(Histogram)又称为质量分布图,是一种二维统计图表。它用一系列高度不等的纵向条纹或线段表示数据分布的情况,一般用横轴表示数据所属类别,用纵轴表示数量或者占比。用直方图可以比较直观地看出产品质量特征的分布状态,便于判断其总体质量分布情况。

在直方图中可以发现分布表无法发现的数据模式、样本的频率分布和总体的分布。

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)

函数中的主要参数说明如下:

x:接收 array。表示 x 轴的数据,无默认;

bins:接收 int、序列或 auto。表示直方图的长条形数目,可选项,默认为 10;

range:接收 tuple。表示箱子的下部和上部范围,忽略较低和较高的异常值。如果未提供,则范围为(x.min(),x.max()),可选,默认值为 None;

histtype:取值为 bar、barstacked、step、stepfilled,可选,默认为 bar,表示要绘制的直方图的类型。其中,bar 是传统的条形直方图,如果给出多个数据,则条形直方图并排排列;barstacked 是将多个数据堆叠在一起的条形直方图;step 生成一个默认未填充的线图;stepfilled 生成一个默认填充的线图。

align:取值为 left、mid、right,可选,默认为 mid,用于控制直方图的绘制方式。其中,left 表示直方图位于左边框边缘的中心;mid 表示直方图在 bin 边缘之间居中;right 表示直方图位于右侧边框的中心。

rwidth:接收标量或无,可选,默认值为 None。表示条形的相对宽度作为箱宽的一部分。如果为 None,则自动计算宽度;如果 histtype 是 'step' 或 'stepfilled',则忽略。

color:接收特定 string 或者包含颜色字符串的 array,表示直方图颜色,默认为 None。

edgecolor:接收特定 string 或者包含颜色字符串的 array,表示长条形边框的颜色。

alpha:接收 0~1 的小数。表示长条形的透明度,默认为 None。

normed:表示是否将得到的直方图向量归一化,可选项,默认为 0,代表不归一化,显示频数。normed=1,表示归一化,显示频率。

【例 1】绘制一个正态分布数据的直方图。其程序代码 test1.py 如下。

# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt

import numpy as np

import matplotlib

# 设置Matplotlib正常显示中文和负号

matplotlib.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文

matplotlib.rcParams['axes.unicode_minus']=False # 正常显示负号

# 随机生成10000个满足正态分布的数据

data = np.random.randn(10000)

plt.hist(data, bins=40,normed=1,color="red",eedgecolor="black",

rwidth=0.7,alpha=0.7)

# 显示横轴标签

plt.xlabel("区间")

# 显示纵轴标签

plt.ylabel("频数/频率")

# 显示图标题

plt.title("频数/频率分布直方图")

plt.show()

运行程序后,显示的直方图如图 1 所示。

图 1:正态分布数据的直方图

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。