一、特点

数据必须是原始数据不能经过处理,数据连续型,显示一组或多组分布数据

histogram 直方图

normed 定额

二、核心

hist(x, bins=None, normed=None)
# x是需要统计的数据,类型:数组
# bins是组数, 组数 = (max(数组)- min(数组))//组距
# normed 默认为:频数分布直方图, 值为True为: 频率分布直方图

三、示例

1、频数直方图

from matplotlib import pyplot as plt
from matplotlib import font_manager a = [131, 98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114, 119, 128, 121, 142, 127, 130, 124,
101, 110,
116, 117, 110, 128, 128, 115, 99, 136, 126, 134, 95, 138, 117, 111, 78, 132, 124, 113, 150, 110, 117, 86, 95, 144,
105, 126,
130, 126, 130, 126, 116, 123, 106, 112, 138, 123, 86, 101, 99, 136, 123, 117, 119, 105, 137, 123, 128, 125, 104,
109, 134,
125, 127, 105, 120, 107, 129, 116, 108, 132, 103, 136, 118, 102, 120, 114, 105, 115, 132, 145, 119, 121, 112, 139,
138, 109,
132, 134, 156, 106, 117, 127, 144, 139, 139, 119, 140, 83, 110, 102, 123, 107, 143, 115, 136, 118, 139, 123, 112,
118, 125, 109,
119, 133, 112, 114, 122, 109, 106, 123, 116, 131, 127, 115, 118, 112, 135, 115, 146, 137, 116, 103, 144, 83, 123,
111, 110, 111,
100, 154, 136, 100, 118, 119, 133, 134, 106, 129, 126, 110, 111, 109, 141, 120, 117, 106, 149, 122, 122, 110, 118,
127, 121, 114,
125, 126, 114, 140, 103, 130, 141, 117, 106, 114, 121, 114, 133, 137, 92, 121, 112, 146, 97, 137, 105, 98, 117,
112, 81, 97,
139, 113, 134, 106, 144, 110, 137, 137, 111, 104, 117, 100, 111, 101, 110, 105, 129, 137, 112, 120, 113, 133, 112,
83, 94, 146,
133, 101, 131, 116, 111, 84, 137, 115, 122, 106, 144, 109, 123, 116, 111, 111, 133, 150, 120] my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\msjh.ttc")
# 设置图行大小
plt.figure(figsize=(20, 8), dpi=80)
# 绘图
movie_width = 3
num_bins = (max(a) - min(a)) // movie_width
plt.hist(a, num_bins)
# 定制x轴刻度和label
_x = list(range(min(a), max(a) + 1))
plt.xticks(_x[::movie_width])
# 添加网格
plt.grid()
# 添加说明
plt.xlabel("电影时长 单位(分)", fontproperties=my_font)
plt.ylabel("数量", fontproperties=my_font)
plt.title("电影时长频数分布直方图", fontproperties=my_font)
# 展示图片
plt.show()

2、频率直方图

频数直方图->频率直方图, 只需要在绘图的时候添加 normed=True 即可

plt.hist(a, num_bins, normed=True)

注意:

MatplotlibDeprecationWarning:
The 'normed' kwarg was deprecated in Matplotlib 2.1 and will be removed in 3.1. Use 'density' instead.
plt.hist(a, num_bins, normed=True)

四、条形图->直方图

目的:解决处理后的数据不能使用直方图的问题

方案:

1.绘图时,width=1或height=1
2.设置x轴或y轴的刻度,注意设置刻度和绘图之间没有直接的关系

例子

from matplotlib import pyplot as plt
from matplotlib import font_manager
#
my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\msjh.ttc")
interval = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 60, 90]
width = [5, 5, 5, 5, 5, 5, 5, 5, 5, 15, 30, 60]
quantity = [836, 2737, 3723, 3926, 3596, 1438, 3273, 642, 824, 613, 215, 47]
# 显示中文 # 设置图行大小
plt.figure(figsize=(20, 8), dpi=80)
# 绘图
plt.bar(range(len(interval)), quantity, width=1) # 设置x轴刻度和label
_x = range(len(interval) + 1)
_x_ticks = [i - 0.5 for i in _x]
_x_label = interval + [150]
plt.xticks(_x_ticks, _x_label)
# 添加说明
plt.xlabel("间隔", fontproperties=my_font)
plt.ylabel("数量", fontproperties=my_font)
plt.title("人口普查", fontproperties=my_font)
# 添加网格
plt.grid()
# 展示图片
plt.show()

matplotlib 直方图的更多相关文章

  1. matplotlib 直方图绘制详解

    n, bins, patches = plt.hist(datasets, bins, normed=False, facecolor=None, alpha=None) 函数说明 用于绘制多个数据集 ...

  2. 【Python】matplotlib直方图纵轴显示百分比

    其实很简单,就是算了一下百分比权重,乘以了一个权重值 import matplotlib.pyplot as plt from matplotlib.ticker import FuncFormatt ...

  3. Matplotlib直方图绘制技巧

    情境引入 我们在做机器学习相关项目时,常常会分析数据集的样本分布,而这就需要用到直方图的绘制. 在Python中可以很容易地调用matplotlib.pyplot的hist函数来绘制直方图.不过,该函 ...

  4. matplotlib直方图

    import matplotlib.pyplot as plt import matplotlib as mpl from matplotlib.font_manager import FontPro ...

  5. Matplotlib 饼图

    章节 Matplotlib 安装 Matplotlib 入门 Matplotlib 基本概念 Matplotlib 图形绘制 Matplotlib 多个图形 Matplotlib 其他类型图形 Mat ...

  6. Matplotlib 多个图形

    章节 Matplotlib 安装 Matplotlib 入门 Matplotlib 基本概念 Matplotlib 图形绘制 Matplotlib 多个图形 Matplotlib 其他类型图形 Mat ...

  7. Matplotlib 图形绘制

    章节 Matplotlib 安装 Matplotlib 入门 Matplotlib 基本概念 Matplotlib 图形绘制 Matplotlib 多个图形 Matplotlib 其他类型图形 Mat ...

  8. Matplotlib 安装

    章节 Matplotlib 安装 Matplotlib 入门 Matplotlib 基本概念 Matplotlib 图形绘制 Matplotlib 多个图形 Matplotlib 其他类型图形 Mat ...

  9. Matplotlib 入门

    章节 Matplotlib 安装 Matplotlib 入门 Matplotlib 基本概念 Matplotlib 图形绘制 Matplotlib 多个图形 Matplotlib 其他类型图形 Mat ...

随机推荐

  1. H3C IPv6地址自动配置

  2. 剑指 Offer —— 数组中重复的数字

    数组中的重复数字 题目描述 牛课网链接 长度为 n 的数组里,所有数字都在 0 到 n-1 的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一 ...

  3. asp dotnet core 图片在浏览器没访问可能原因

    我写了一个项目用来广告就用到广告的图片,但是广告的图片放在博客的链接无法访问,连我的方法都没有调用,而我尝试网页直接访问图片链接是可以访问的,最后找到原因是广告插件禁用了图片访问 我在一个方法创建了广 ...

  4. 【38.96%】【hdu 1540】Tunnel Warfare

    Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission ...

  5. JS(JavaScript)的j进一步了解9(更新中···)

    1.动画 (1) Css样式提供了运动 过渡的属性transition  从一种情况到另一种情况叫过渡 Transition:attr  time  linear  delay: Attr 是变化的属 ...

  6. 解决应用服务器变为集群后的Session问题

    2.2.4.2 解决应用服务器变为集群后的Session问题 先来看一下什么是Session. 用户使用网站的服务,基本上需要浏览器与Web 服务器的多次交互.HTTP 协议本身是无状态的,需要基于H ...

  7. ReactNative笔记

    Android studio 模拟器(Nexus_5_API_28.avd)无法联网可进入settings/Network&internet/Private DNS把默认的automatic改 ...

  8. The Zen of Python —— Python 之禅

    Beautiful is better than ugly.   # 优美好于丑陋(Python以编写优美的代码为目标) Explicit is better than implicit.   # 明 ...

  9. 调用微软未公开ZwQueryInformationThread函数根据线程句柄获取线程ID

    这段时间公司项目中为了支持XP系统同事代码中用到了 GetThreadId 这个微软的API 但是这个API最低支持版本是 Windows version Windows Vista [desktop ...

  10. HBase学习笔记(四)—— 架构模型

    在逻辑上,HBase 的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列. 但从 HBase 的底层物理存储结构(K-V)来看,HBase 更像是一个 multi-dimensional m ...