数据分析必备:一步步教你如何用matplotlib做数据可视化(8)

1、Matplotlib 条形图

条形图或条状图是一种图表或图形,它显示带有矩形条的分类数据,其高度或长度与它们所代表的值成比例。可以垂直或水平绘制条形。
条形图显示了离散类别之间的比较。图表的一个轴显示要比较的特定类别,另一个轴表示测量值。
Matplotlib API提供了bar()函数,可以在MATLAB样式使用以及面向对象的API中使用。与axis对象一起使用的bar()函数的签名如下

ax.bar(x, height, width, bottom, align)

该函数使用大小为(x −width = 2; x + width=2; bottom; bottom + height)来绑定矩形创建条形图。
该函数的参数是 -
x - 表示条形的x坐标的标量序列。如果x是条形中心(默认)或左边缘,则对齐控件。
height - 标量或标量序列表示条的高度。
width - 标量或类似数组,可选。条形的宽度默认为0.8。
bottom - 标量或类似数组,可选。条形的y坐标默认为None。
align - {‘center’,‘edge’},可选,默认:center。
该函数返回包含所有条形的Matplotlib容器对象。以下是Matplotlib条形图的简单示例。它显示了在一所学院提供的各种课程的学生人数。

import matplotlib.pyplot as plt
import numpy as np
import math
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 原文出自【立地货】,商业转载请联系作者获得授权,非商业请保留原文链接:
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
ax.bar(langs,students)
plt.show()

执行上面示例代码,得到以下结果
在这里插入图片描述
当比较多个数量和更改一个变量时,可能需要一个条形图,其中有一个颜色的条形图用于一个数量值。
可以通过使用条形的厚度和位置来绘制多个条形图。数据变量包含三个系列的四个值。以下脚本将显示四个条形图的三个条形图。这些条的厚度为0.25个单位。每个条形图将从前一个移动0.25个单位。数据对象是一个多元图,包含过去四年在工程学院的三个分支中通过的学生数量。

import matplotlib.pyplot as plt
import numpy as np
import math
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 原文出自【立地货】,商业转载请联系作者获得授权,非商业请保留原文链接:
data = [[30, 25, 50, 20],[40, 23, 51, 17],[35, 22, 45, 19]]
X = np.arange(4)
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.bar(X + 0.00, data[0], color = 'b', width = 0.25)
ax.bar(X + 0.25, data[1], color = 'g', width = 0.25)
ax.bar(X + 0.50, data[2], color = 'r', width = 0.25)
plt.show()

执行上面示例代码,得到以下结果
在这里插入图片描述
堆积条形图堆叠表示彼此顶部的不同组的条形图。结果为条形图的高度显示组的组合结果。
pyplot.bar()函数的可选bottom参数指定条的起始值。它不是从零运行到一个值,而是从底部到值。第一次调用pyplot.bar()绘制蓝条。第二次调用pyplot.bar()绘制红色条形图,蓝色条形图的底部位于红色条形图的顶部。

import matplotlib.pyplot as plt
import numpy as np
import math
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 原文出自【立地货】,商业转载请联系作者获得授权,非商业请保留原文链接:
N = 5
menMeans = (20, 35, 30, 35, 27)
womenMeans = (25, 32, 34, 20, 25)
ind = np.arange(N) # the x locations for the groups
width = 0.35
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.bar(ind, menMeans, width, color='r')
ax.bar(ind, womenMeans, width,bottom=menMeans, color='b')
ax.set_ylabel('分数')
ax.set_title('按组和性别分数')
ax.set_xticks(ind, ('G1', 'G2', 'G3', 'G4', 'G5'))
ax.set_yticks(np.arange(0, 81, 10))
ax.legend(labels=['男', '女'])
plt.show()

执行上面示例代码,得到以下结果
在这里插入图片描述

2、Matplotlib 直方图

直方图是数值数据分布的精确表示。它是连续变量的概率分布的估计,它是一种条形图。要构建直方图,请按照以下步骤操作 -
Bin值范围。
将整个值范围划分为一系列间隔。
计算每个间隔中有多少值。
bins通常指定为变量的连续,非重叠区间。matplotlib.pyplot.hist()函数绘制直方图。它计算并绘制x的直方图。
参数
下表列出了直方图的参数 -
x - 数组或数组序列。
bins - 整数或序列或auto,可选项。
range - bins的下部和上部范围。
density - 如果为True,则返回元组的第一个元素将是规范化以形成概率密度的计数。
cumulative - 如果为True,则计算直方图,其中每个bin给出该bin中的计数加上较小值的所有bin。
histtype - 要绘制的直方图的类型,默认为bar。
下面的实例描绘了一个班级学生获得的标记直方图。定义了四个bins,0-25,26-50,51-75和76-100。直方图显示了落在此范围内的学生人数。
示例代码:

import matplotlib.pyplot as plt
import numpy as np
import math
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 原文出自【立地货】,商业转载请联系作者获得授权,非商业请保留原文链接:
fig,ax = plt.subplots(1,1)
a = np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27])
ax.hist(a, bins = [0,25,50,75,100])
ax.set_title("结果直方图")
ax.set_xticks([0,25,50,75,100])
ax.set_xlabel('分数')
ax.set_ylabel('学生数量')
plt.show()

执行上面示例代码,得到以下结果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/31460.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Stable Diffusion WebUI 使用ControlNet:IP-Adapter保持生图的角色一致性

IP-Adapter-FaceID可以在保持人脸一致的条件下生成各种风格的图像。 下载 IP Adapter 需要的 Face ID 模型和 Lora 下载地址:https://huggingface.co/h94/IP-Adapter-FaceID/ 下载 ip-adapter-faceid-plusv2_sd15.bin 和 ip-adapter-faceid-plusv2_sd15_lora.saf…

【MySQL进阶之路 | 高级篇】常见索引(聚簇索引, 二级索引)

1. 常见索引概念 索引按照物理实现方式,可以分为两种,聚簇索引和非聚簇索引.我们也把非聚簇索引称为二级索引或辅助索引. (1). 聚簇索引 聚簇索引并不是一种单独的索引类型,而是一种数据存储方式(所有的数据记录都存储在了叶子节点)&#…

js如何使得四舍五入的百分比之和为100%

在JavaScript中,如果你想要确保一组四舍五入后的百分比之和严格等于100%,那么你不能直接对每个百分比进行四舍五入,因为四舍五入会引入误差。但是,你可以采用一种策略,即先对所有的百分比进行常规的四舍五入&#xff0…

C# WPF入门学习主线篇(二十九)—— 绑定到对象和集合

C# WPF入门学习主线篇(二十九)—— 绑定到对象和集合 在WPF中,数据绑定是开发动态和交互性用户界面的核心技术。通过数据绑定,我们可以轻松地将UI控件与后台的数据源连接起来,实现数据的自动更新和显示。在本篇文章中&…

深度学习跨平台环境问题

在深度学习过程中,不可避免的是在win上跑不通的代码在ubuntu中就可以跑通,这里建议使用autodl。 首先在ubuntu上导出环境(如果你的环境是base的话使用base) conda env export --name base --no-builds > environment.yaml 这…

wordpress 导航主题 有批量从源码导入功能

下载地址:wordpress导航主题 可以批量导入

ardupilot开发 --- Jetson Orin Nano 后篇

我拼命加速,但贫穷始终快我一步 0~1920. visp-d455:基于IBVS的Pixhawk无人机视觉伺服20.1 基础关于连接、通讯、UDP forward服务:一些相关的、有用的例程Linux C程序的gdb断点调试搭建仿真解决【testPixhawkDroneTakeoff.cpp例程能解锁但起飞…

物联网LORA技术-SX1276/SX1277/SX1278-137MHz至1020MHz低功耗远距离收发器

概述: SX1276/SX1277/SX1278 收发器主要采用LORATM 远程调制解调器,用于超长距离扩频通信,抗干扰性强,能够最大限度降低电流消耗。借助升特的LoRaTM 专利调制技术,SX1276/SX1277/SX1278 采用低成本的晶体和物料即可获得…

SHELL脚本学习(十)初识 sed编辑器

一、sed 编辑器 sed 编辑器被称作流编辑器,根据命令来处理数据流中的数据。 这些数据要么从命令行输入,要么保存在命令文本文件中。 sed编辑器可以执行下列操作: 从输入中读取一行数据根据所提供的命令匹配数据按照命令修改数据流中的数据将…

WIFI6E中的MESH组网功能

什么是WIFI6E和MESH组网? WIFI 6E 是扩展到6GHz 频段的WIFI 6无线通信技术,而“WIFI 6E”中的“6”是指WIFI技术的“第6代”,“E”则是指使用新频段的标准的最新扩展。WIFI 6E通过增加6GHz频段,提供更高的带宽、更低的延迟和更大…

VMware虚拟机下载安装Windows Server 2016

「作者简介」:2022年北京冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础对安全知识体系进行总结与归纳,著作适用于快速入门的 《网络安全自学教程》,内容涵盖系统安全、信息收集等…

从新手小白到红酒大咖:解锁红酒品鉴的终极秘籍,升级之路全攻略

在五彩斑斓的饮品世界中,红酒以其深邃的色泽、丰富的口感和悠久的历史,吸引了无数人的目光。对于红酒的初学者来说,从小白到品鉴师的道路或许充满了未知与挑战,但只要掌握了正确的知识和方法,就能够轻松踏入这个美妙的…

用群辉NAS打造影视墙(Jellyfin篇)

目录 1、安装Jellyfin媒体服务器 2、配置 (1)语言 (2)管理员账户 (3)添加媒体库 (4)指定元数据语言 (5)远程访问设置 (6)修改文件夹权限 (7)刷新电影 (8)启用硬件加速 3、PC浏览器访问 4、手机客户端 5、智能TV客户端 6、解决演员不能显示中文的问…

Android SurfaceFlinger——注册监听调用流程(七)

这一篇我们介绍一下 IComposer 中的另一个比较重要的方法,通过注册监听 Hal 层实现监听驱动的关键动作。 一、注册监听 在前面文章 SurfaceFlinger 的 init() 方法中,我们注册了一个 Callback 到 Hal 层中。最终通过 HIDL 调用到 Hal 层。 1、SurfaceF…

Java从小白到入职 视频教程 下载 因为太大存百度云盘4.zip

Java从小白到入职 视频教程 下载 1---战前准备_00-课程介绍&个人简介.mp4 2---战前准备_00-02-学习方法.mp4 3---战前准备_00-03-你的角色.mp4 4---战前准备_00-04-学习工具.mp4 5---战前准备_00-05-技术岗位概述-Web前端.mp4 6---战前准备_00-06-技术岗位概述-Java语…

Jenkins+gitee流水线部署springboot项目

目录 前言 一、软件版本/仓库 二、准备工作 2.1 安装jdk 11 2.2 安装maven3.9.7 2.3 安装docker 2.4 docker部署jenkins容器 三、jenkins入门使用 3.1 新手入门 3.2 jenkins设置环境变量JDK、MAVEN、全局变量 3.2.1 jenkins页面 3.2.2 jenkins容器内部终端 3.2.3 全…

购物返利系统中的数据处理与优化策略

购物返利系统中的数据处理与优化策略 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 随着电商行业的不断发展,购物返利系统作为一种常见的营销手段…

python-赏月

[题目描述] 在某个星球上看到的月亮大小有一个规律,月亮为每30天一个周期,在这30天的周期里,月亮的大小分别为 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1。 虽然天气很冷,但这个星球上的某个居民今…

MyBatis 源码分析--SqlSessionFactory

前言: 前文我们简单的回顾了 MyBatis 的基本概念,有聊到核心组件,工作流程等,本篇我们开始深入剖析 MyBatis 的核心源码,欢迎大家持续关注。 Mybatis 知识传送门 初识 MyBatis 【MyBatis 核心概念】 MyBatis 源码解…

钒能新材料综合回收利用,钒溶液净化富集工艺之离子交换法

钒电池储能产业作为典型的绿色低碳优势产业,是新型储能领域重要发展方向。钒电池储能具备大规模、长周期等优势,是储能领域的重要组成部分,将成为拓展电能利用、应对可再生能源随机波动、支撑可再生能源高占比电力系统的最佳技术途径之一。 …