python 直方图的绘制方法全解_matplotlib画出直方图和密度图方法

前言

matplotlib处理经常能够用到的折线图、柱状图等,还可以画出直方图和密度图。

plt.hist()方法

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:柱状图,每一个柱子的相对宽度

详情参考官方文档:传送门

代码demo

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)) # 1000 个数据的分布

s.hist( rwidth = 0.9, bins = 5, histtype = 'stepfilled')

plt.show() # 见 图1

re = plt.hist(s, rwidth = 0.9, kind = 'kde')

'''

re 是一个元组

re[0] 出现的频率

[ 6. 20. 81. 185. 265. 214. 151. 63. 10. 5.]

re[1] 出现的间隔

[-3.19551031 -2.5366076 -1.87770489 -1.21880218 -0.55989947 0.09900323

0.75790594 1.41680865 2.07571136 2.73461407 3.39351678]

re[2]

'''

plt.show() # 见 图2

'''

第一个数值的频率是6,介于 -3.19551031 和 -2.5366076 之间

一次类推

'''

'''

参数设置:

bins 默认 10, 分多少份

color 选择颜色

orientation 默认垂直,可以选择水平

注意:将kind='kde',画出来的就是一个密度图,如:

s.plot(kind='kde') 就是一个密度图

'''1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

在之前提到对series画图中,可以使用 s.plot(),需要注意的是,将kind=‘kde’,画出来的就是一个密度图,如:

s.plot(kind=‘kde’) 就是一个密度图

图1:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21pc3N5b3Vnb29u,size_16,color_FFFFFF,t_70

图2:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21pc3N5b3Vnb29u,size_16,color_FFFFFF,t_70

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值