matplotlib.pyplot.hist(x,bins = None,range = None,density = None,weights = None,cumulative = False,bottom = None,hist type =‘bar’,align =‘mid’,orientation =‘vertical’,rwidth = None,log = False,color = None,label = None,stacked = False,normed = None,*,data = None,** kwargs )
可以看到参数非常多,简单的介绍几个:
x : (n,)数组或序列(n,)数组
输入值,这需要单个数组或不需要具有相同长度的数组序列。
bins: int,默认是10,就是把数据分多少份的意思。
sequence, 可以给出bins的边缘如:[1, 2, 3, 4],分成的区间就是[1, 2)[2, 3)[3, 4]。
hist type : {‘bar’,‘barstacked’,‘step’,‘stepfilled’},可选,改变绘图样式。
rwidth:柱状图,每一个柱子的相对宽度
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pandas import Series, DataFrame
np.random.seed(666)
s = Series(np.random.randn(1000))
s.hist( rwidth = 0.9, bins = 5, histtype = 'stepfilled')
plt.show()
re = plt.hist(s, rwidth = 0.9, kind = 'kde')
re 是一个元组
re[0] <class 'numpy.ndarray'> 出现的频率
[ 6. 20. 81. 185. 265. 214. 151. 63. 10. 5.]
re[1] <class 'numpy.ndarray'> 出现的间隔
[-3.19551031 -2.5366076 -1.87770489 -1.21880218 -0.55989947 0.09900323
0.75790594 1.41680865 2.07571136 2.73461407 3.39351678]
re[2] <a list of 10 Patch objects>
plt.show()
第一个数值的频率是6,介于 -3.19551031 和 -2.5366076 之间
参数设置:
bins 默认 10, 分多少份
color 选择颜色
orientation 默认垂直,可以选择水平
注意:将kind='kde',画出来的就是一个密度图,如:
s.plot(kind='kde') 就是一个密度图
在之前提到对series画图中,可以使用 s.plot(),需要注意的是,将kind=‘kde’,画出来的就是一个密度图,如:
s.plot(kind=‘kde’) 就是一个密度图
图1:

图2:

直方图是用于展示数据的分组分布状态的一种图形,用矩形的宽度和高度表示频数分布,通过直方图,用户可以很直观的看出数据分布的形状、中心位置以及数据的离散程度等。
在python中一般采用matplotlib库的hist来绘制直方图,至于如何给直方图添加拟合曲线(密度函数曲线),一般来说有以下两种方法。
方法一:采用matplotlib中的mlab模块
mlab模块是Python中强大的3D作图工具,立体感效果极佳。在这里使用mlab可以跳出直方图二维平面图形的限制,在此基础上再添加一条曲线。在这里,我们以鸢尾花iris中的数据为例,来举例说明。
import numpy as np
%matplotlib inline
#plt.hist(x, bins=10, range=None, normed=False, weights=None, cumulative=False, bottom=None,
#histtype='bar', align='mid', orientation='vertical',rwidth=Non
项目中在前期经常要看下数据的分布情况,这对于探究数据规律非常有用。概率分布表示样本数据的模样,长的好不好看如果有图像展示出来就非常完美了,使用Python绘制频率分布直方图非常简洁,因为用的频次非常高,这里记录下来。还是Python大法好,代码简洁不拖沓~
如果数据取值的范围跨度不大,可以使用等宽区间来展示直方图,这也是最常见的一种;如果数据取值范围比较野,也可以自定义区间端点,绘制图像,下面分两种情况展示
1. 区间长度相同绘制直方图
#-*- encoding=utf-8 -*-
import datetime
import numpy as np
import matplotlib.p
Matplotlib 库进行数据可视化的教程,该教程包含了实际代码实现以及相关介绍,方便读者更加深入地理解 Matplotlib 库的使用。
Matplotlib 是 Python 中最流行的数据可视化库之一,它可以用于创建各种类型的图表,包括线图、散点图、柱状图、饼图、等高线图和热力图等。这些图表可以用于数据分析、数据挖掘和机器学习等领域。
这本教程从基础入手,介绍了如何使用 Matplotlib 库创建简单的图表,然后逐步深入到更高级的图表类型和细节。读者可以学习如何控制坐标轴、标签、标题和颜色等方面的属性,以及如何添加图例、网格线和文本注释等。
除了基本的图表类型,该教程还介绍了如何创建子图、堆叠图、直方图和密度图等。读者可以学习如何在一个图表中绘制多个数据集,以及如何对数据进行分组和聚合以进行更深入的分析。
该教程还包括如何使用 Matplotlib 库与其他 Python 库进行数据分析和可视化,包括 NumPy、Pandas 和 Seaborn 等。读者可以学习如何导入数据集并进行数据清洗和预处理,然后使用 Matplotlib 库创建图表以可视化数据集。
s = Series(np.random.randn(1000))
# 生成了两个array和一个图形对象,第一个array是在区间数的数量,第二个是区间范围
# hist画直方...
函数功能:判定数据(或特征)的分布情况
调用方法: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:指定要绘制直方图的数据;
翻译成中文是什么意思呢?就是说,我们的每一个“柱子”的高度是从y轴的哪一个值开始往上长。还不明白?没关系,还是以班级男女为例:bar1 = plt . bar([ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] , label = '男生') bar2 = plt . bar([ 1 , 2 , 3 ] , [ 1 , 2 , 3 ] , color = 'g' , bottom = [ 4 , 5 , 6 ] , label = '女生')
Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。
Matplotlib 可以用来绘制各种静态,动态,交互式的图表。
Matplotlib 是一个非常强大的 Python 画图工具,我们可以使用该工具将很多数据通过图表的形式更直观的呈现出来。
Matplotlib 可以绘制线图、散点图、等高线图、条形图、柱状图、3D 图形、甚至是图形动画等等语法格式
参数说明:
设置垂直方向的柱形图
设置柱形图颜色
自定义各个柱形的颜色:
Matplo