Python柱形图
柱形图
柱形图,又称长条图、柱状统计图、条图、条状图、棒形图,是一种以长方形的长度为变量的统计图表。长条图用来比较两个或以上的价值(不同时间或者不同条件),只有一个变量,通常利用于较小的数据集分析。长条图亦可横向排列,或用多维方式表达。柱形图在数据可视化中具有多种作用和用途,包括:
-
比较:柱形图是比较不同类别或组之间数量差异的常用工具。通过比较矩形条的高度或长度,可以直观地了解各个类别或组的数值大小,从而快速识别出最大值、最小值和趋势变化。
-
分布:柱形图可以显示数据的分布情况。通过观察矩形条的高度分布,可以了解数据集中在哪些区间或类别上,以及是否存在异常值或离群点。
-
排名:柱形图可以用于排名不同类别或组的顺序。根据矩形条的高度或长度,可以确定各个类别或组的排名顺序,从而帮助做出决策或优先级排序。
-
趋势:柱形图可以显示时间或其他变量对数量的影响。通过在不同时间点或变量上绘制矩形条,可以观察到数量的变化趋势,从而帮助预测未来的走势或做出战略决策。
-
强调:柱形图可以突出显示特定类别或组的重要性。通过增加特定类别或组的矩形条的颜色、阴影或标签,可以使其在图表中更加突出,吸引观察者的注意。
1.bar()
我们可以使用 pyplot 中的 bar() 方法来绘制柱形图。bar() 方法语法格式如下:
matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)
2.参数说明
x:浮点型数组,柱形图的 x 轴数据。
height:浮点型数组,柱形图的高度。
width:浮点型数组,柱形图的宽度。
bottom:浮点型数组,底座的 y 坐标,默认 0。
align:柱形图与 x 坐标的对齐方式,‘center’ 以 x 位置为中心,这是默认值。 ‘edge’:将柱形图的左边缘与 x 位置对齐。要对齐右边缘的条形,可以传递负数的宽度值及 align=‘edge’。
**kwargs::其他参数。
简单柱形图
import matplotlib.pyplot as plt
import numpy as npx = np.array(["Runoob-1", "Runoob-2", "Runoob-3", "C-RUNOOB"])
y = np.array([12, 22, 6, 18])plt.bar(x, y, color = ["#4CAF50","red","hotpink","#556B2F"])
plt.show()
简单柱形图(纵向)
纵向的柱形图可以使用 barh() 方法来设置:
import matplotlib.pyplot as plt
import numpy as npx = np.array(["Runoob-1", "Runoob-2", "Runoob-3", "C-RUNOOB"])
y = np.array([12, 22, 6, 18])plt.barh(x,y)
plt.show()
两组数据并列柱形图
并列柱形图在数据可视化中有以下几个主要作用:
-
比较多个类别或组:并列柱形图可以用于比较多个类别或组之间的数值差异。通过将柱形图并列在同一水平位置上,观察者可以直观地比较它们之间的高度差异,从而了解每个类别或组的数值特征。
-
显示关联关系:并列柱形图可以用于显示多个类别或组之间的关联关系。通过将柱形图并列在一起,观察者可以比较它们之间的相对大小和趋势,从而发现它们之间的关联或相互影响。
-
强调单个类别或组的变化:并列柱形图可以突出显示单个类别或组的变化情况。通过将柱形图放置在同一水平位置上,观察者可以直接比较它们的高度差异,进而了解每个类别或组的变化程度。
-
比较不同属性或指标:并列柱形图还可以用于比较不同属性或指标在多个类别或组之间的差异。通过并列柱形图,可以在同一图表中同时显示多个属性或指标的数值,从而方便比较它们之间的差异和关系。
import numpy as np
from matplotlib import pyplot as pltplt.figure(figsize=(9, 9))
n = 5
X = np.arange(n) + 1.0
width = 0.3
# width:柱的宽度
# X是1,2,3,4,5,6,7,8,柱的个数
# numpy.random.uniform(low=0.0, high=1.0, size=None), normal
# uniform均匀分布的随机数,normal是正态分布的随机数,0.5-1均匀分布的数,一共有n个
Y1 = np.random.uniform(0.5, 1.0, n)
Y2 = np.random.uniform(0.5, 1.0, n)plt.bar(X - width/2, Y1, width=width, facecolor='lightskyblue', label='1')plt.bar(X + width/2, Y2, width=width, facecolor='yellowgreen', label='2')# 功能1
x_labels = ["G1", "G2", "G3", "G4", "G5"]
# 用第1组...替换横坐标x的值
plt.xticks(X, x_labels)
# 水平柱状图plt.barh,属性中宽度width变成了高度height
# 打两组数据时用+
# facecolor柱状图里填充的颜色
# edgecolor是边框的颜色
# 想把一组数据打到下边,在数据前使用负号
# plt.bar(X, -Y2, width=width, facecolor='#ff9999', edgecolor='white')
# 给图加text# 显示图例
plt.legend()
for x, y in zip(X, Y1):plt.text(x - width/2, y + 0.005, '%.2f' % y, ha='center', va='bottom')for x, y in zip(X, Y2):plt.text(x + width/2, y + 0.005, '%.2f' % y, ha='center', va='bottom')# plt.ylim(0, +1.25)
plt.show()
三组数据并列柱形图
import numpy as np
from matplotlib import pyplot as pltplt.figure(figsize=(9, 9))
n = 5
X = np.arange(n) + 1.0
width = 0.3
# width:柱的宽度
# X是1,2,3,4,5,6,7,8,柱的个数
# numpy.random.uniform(low=0.0, high=1.0, size=None), normal
# uniform均匀分布的随机数,normal是正态分布的随机数,0.5-1均匀分布的数,一共有n个
Y1 = np.random.uniform(0.5, 1.0, n)
Y2 = np.random.uniform(0.5, 1.0, n)
Y3 = np.random.uniform(0.5, 1.0, n)plt.bar(X - width, Y1, width=width, facecolor='lightskyblue', label='1')plt.bar(X, Y2, width=width, facecolor='yellowgreen', label='2')plt.bar(X + width, Y3, width=width, facecolor='red', label='3')# 功能1
x_labels = ["G1", "G2", "G3", "G4", "G5"]
# 用第1组...替换横坐标x的值
plt.xticks(X, x_labels)
# 水平柱状图plt.barh,属性中宽度width变成了高度height
# 打两组数据时用+
# facecolor柱状图里填充的颜色
# edgecolor是边框的颜色
# 想把一组数据打到下边,在数据前使用负号
# plt.bar(X, -Y2, width=width, facecolor='#ff9999', edgecolor='white')
# 给图加text# 显示图例
plt.legend()
for x, y in zip(X, Y1):plt.text(x - width, y + 0.005, '%.2f' % y, ha='center', va='bottom')for x, y in zip(X, Y2):plt.text(x, y + 0.005, '%.2f' % y, ha='center', va='bottom')for x, y in zip(X, Y3):plt.text(x + width, y + 0.005, '%.2f' % y, ha='center', va='bottom')
# plt.ylim(0, +1.25)
plt.show()
四组数据并列柱形图
import numpy as np
from matplotlib import pyplot as pltplt.figure(figsize=(12, 9))
n = 5
X = np.arange(n) + 1.0
width = 0.2
# width:柱的宽度
# X是1,2,3,4,5,6,7,8,柱的个数
# numpy.random.uniform(low=0.0, high=1.0, size=None), normal
# uniform均匀分布的随机数,normal是正态分布的随机数,0.5-1均匀分布的数,一共有n个
Y1 = np.random.uniform(0.5, 1.0, n)
Y2 = np.random.uniform(0.5, 1.0, n)
Y3 = np.random.uniform(0.5, 1.0, n)
Y4 = np.random.uniform(0.5, 1.0, n)plt.bar(X - 3*width/2, Y1, width=width, facecolor='lightskyblue', label='1')plt.bar(X - width/2, Y2, width=width, facecolor='b', label='2')plt.bar(X + width/2, Y3, width=width, facecolor='yellowgreen', label='3')plt.bar(X + 3*width/2, Y4, width=width, facecolor='r', label='4')# 功能1
x_labels = ["G1", "G2", "G3", "G4", "G5"]
# 用第1组...替换横坐标x的值
plt.xticks(X, x_labels)
# 水平柱状图plt.barh,属性中宽度width变成了高度height
# 打两组数据时用+
# facecolor柱状图里填充的颜色
# edgecolor是边框的颜色
# 想把一组数据打到下边,在数据前使用负号
# plt.bar(X, -Y2, width=width, facecolor='#ff9999', edgecolor='white')
# 给图加text# 显示图例
plt.legend()
for x, y in zip(X, Y1):plt.text(x - 3*width/2, y + 0.005, '%.2f' % y, ha='center', va='bottom')for x, y in zip(X, Y2):plt.text(x - width/2, y + 0.005, '%.2f' % y, ha='center', va='bottom')for x, y in zip(X, Y3):plt.text(x + width / 2, y + 0.005, '%.2f' % y, ha='center', va='bottom')for x, y in zip(X, Y4):plt.text(x + 3*width / 2, y + 0.005, '%.2f' % y, ha='center', va='bottom')# plt.ylim(0, +1.25)
plt.show()
堆叠柱形图
堆叠柱形图在数据可视化中有以下几个主要作用:
-
比较组成部分:堆叠柱形图可以用于比较多个类别或组的不同部分在整体中的贡献程度。通过堆叠不同的柱形图,每个柱形图表示一个类别或组,可以直观地比较它们在整体中的相对大小。这对于展示数据的组成结构、分析各部分之间的比例和趋势非常有用。
-
显示累积效果:堆叠柱形图可以显示多个类别或组的累积效果。每个堆叠柱形图的高度表示该类别或组的总值,而柱形图中的每个部分表示该部分的贡献。通过堆叠不同的柱形图,可以清晰地展示累积效果,例如各类别或组的总销售额随时间的变化情况。
-
强调总体趋势:堆叠柱形图可以帮助观察者更容易地发现总体趋势。通过比较堆叠柱形图的整体高度,可以直观地判断不同类别或组之间的总体增长或减少趋势。这对于分析数据的总体变化、发现异常情况以及做出决策非常有帮助。
-
可视化数据分布:堆叠柱形图还可以用于可视化数据的分布情况。通过堆叠不同的柱形图,可以看到每个部分在整体中的相对比例,从而了解数据的分布特征。这对于发现数据的偏差、异常或集中情况非常有用。
import numpy as np
from matplotlib import pyplot as pltplt.figure(figsize=(9, 12))
n = 5
X = np.arange(n) + 1.0
width = 0.3
# width:柱的宽度
# X是1,2,3,4,5,6,7,8,柱的个数
# numpy.random.uniform(low=0.0, high=1.0, size=None), normal
# uniform均匀分布的随机数,normal是正态分布的随机数,0.5-1均匀分布的数,一共有n个
Y1 = np.random.uniform(0.5, 1.0, n)
Y2 = np.random.uniform(0.5, 1.0, n)
Y3 = np.random.uniform(0.5, 1.0, n)Y11 = np.random.uniform(0.5, 1.0, n)
Y22 = np.random.uniform(0.5, 1.0, n)
Y33 = np.random.uniform(0.5, 1.0, n)plt.bar(X - width, Y1, width=width, facecolor='b', label='1-bottle')
plt.bar(X - width, Y11, width=width, bottom=Y1, facecolor='lightskyblue', label='1-top')plt.bar(X, Y2, width=width, facecolor='g', label='2-bottle')
plt.bar(X, Y22, width=width, bottom=Y2, facecolor='yellowgreen', label='2-top')plt.bar(X + width, Y3, width=width, facecolor='red', label='3-bottle')
plt.bar(X + width, Y33, bottom=Y3, width=width, facecolor='y', label='3-top')# 功能1
x_labels = ["G1", "G2", "G3", "G4", "G5"]
# 用第1组...替换横坐标x的值
plt.xticks(X, x_labels)
# 水平柱状图plt.barh,属性中宽度width变成了高度height
# 打两组数据时用+
# facecolor柱状图里填充的颜色
# edgecolor是边框的颜色
# 想把一组数据打到下边,在数据前使用负号
# plt.bar(X, -Y2, width=width, facecolor='#ff9999', edgecolor='white')
# 给图加text# 显示图例
plt.legend()
for x, y in zip(X, Y1+Y11):plt.text(x - width, y + 0.005, '%.2f' % y, ha='center', va='bottom')for x, y in zip(X, Y2+Y22):plt.text(x, y + 0.005, '%.2f' % y, ha='center', va='bottom')for x, y in zip(X, Y3+Y33):plt.text(x + width, y + 0.005, '%.2f' % y, ha='center', va='bottom')
# plt.ylim(0, +1.25)
plt.show()
相关文章:

Python柱形图
柱形图 柱形图,又称长条图、柱状统计图、条图、条状图、棒形图,是一种以长方形的长度为变量的统计图表。长条图用来比较两个或以上的价值(不同时间或者不同条件),只有一个变量,通常利用于较小的数据集分析…...

用OpenCV(Python)获取图像的SIFT特征
import cv2 as cv import numpy as np import matplotlib.pyplot as plt imgcv.imread("../Lena.png") img_graycv.cvtColor(img,cv.COLOR_BGR2GRAY)#创建一个SIFI对象 siftcv.SIFT_create()#使用SIFT对象在灰度图像img_gray中检测关键点,结果存储在变量k…...

阿里云ECS和轻量服务器有什么区别?
阿里云服务器ECS和轻量应用服务器有什么区别?轻量和ECS优缺点对比,云服务器ECS是明星级云产品,适合企业专业级的使用场景,轻量应用服务器是在ECS的基础上推出的轻量级云服务器,适合个人开发者单机应用访问量不高的网站…...

华为云云耀云服务器L实例评测|安装搭建学生成绩管理系统
1.前言概述 华为云耀云服务器L实例是新一代开箱即用、面向中小企业和开发者打造的全新轻量应用云服务器。多种产品规格,满足您对成本、性能及技术创新的诉求。云耀云服务器L实例提供丰富严选的应用镜像,实现应用一键部署,助力客户便捷高效的在…...

Audacity 使用教程:轻松录制、编辑音频
Audacity 使用教程:轻松录制、编辑音频 1. 简介 Audacity 是一款免费、开源且功能强大的音频录制和编辑软件。它适用于 Windows、Mac 和 Linux 等多种操作系统,适合音乐制作、广播后期制作以及普通用户进行音频处理。本教程将带领大家熟悉 Audacity 的…...

深入了解“注意力”和“变形金刚”-第2部分
一、说明 在上一个故事中,我已经解释了什么是注意力机制,以及与转换器相关的一些重要关键字和块,例如自我注意、查询、键和值以及多头注意力。 在这一部分中,我将解释这些注意力块如何帮助创建转换器网络,并详细讨论网…...

“债务飙升!美国一天内增加2750亿美元,金融震荡的前奏已拉开帷幕!”
2023年10月4日,美国政府向美国债务追加2750亿美元,相当于现在比特币(BTC)总市值的一半还多。 有人会说:多一点、少一点,没什么区别.....确实,当你看美国债务时,2750亿美元并没有什么意义&#x…...

最新Uniapp软件社区-全新带勋章源码
测试环境:php7.1。ng1.2,MySQL 5.6 常见问题: 配置好登录后转圈圈,检查环境及伪静态以及后台创建好应用 上传图片不了,检查php拓展fileinfo 以及public文件权限 App个人主页随机背景图,在前端uitl文件夹里面…...

基于goravel的CMS,企业官网通用golang后台管理系统
2023年9月11日10:47:00 仓库地址: https://gitee.com/open-php/zx-goravel-website 框架介绍 Goravel SCUI 后端开发组件 go 1.20 Goravel 1.13 数据库 sql(使用最新日期文件) goravel\doc\sql_bak mysql 8.0 前端开发组件 scui 1.6.9 node v14.21.3 效果图…...

(五)激光线扫描-位移台标定
线激光属于主动测量方式,但是由于线激光的特性,我们只能通过提取激光中心线获取这一条线上的高度信息,那么要进行三维重建的话,就需要通过平移或者是旋转的方式,来让线激光扫描被测物体的完整轮廓,也就是整个表面。激光线的密度越高还原出来的物体越细腻,但由于数据量大…...

媒体发稿:为什么选择国内媒体推广一文带你领略其魅
随着互联网的飞速发展,媒体推广成为企业宣传的重要方式。国内媒体推广因其独特的魅力和广泛的传播渠道,逐渐成为企业选择的首选。本文将探讨为什么选择国内媒体推广,并带您领略其魅力。 1. 国内媒体推广的广泛传播渠道 国内媒体推广拥有广泛…...

基于自私羊群优化的BP神经网络(分类应用) - 附代码
基于自私羊群优化的BP神经网络(分类应用) - 附代码 文章目录 基于自私羊群优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.自私羊群优化BP神经网络3.1 BP神经网络参数设置3.2 自私羊群算法应用 4.测试结果…...
AI绘图:GPT4技术的艺术化呈现与无限可能
了解更多点击《AI绘图:GPT4技术的艺术化呈现与无限可能》 GPT对于每个科研人员已经成为不可或缺的辅助工具,不同的研究领域和项目具有不同的需求。例如在科研编程、绘图领域: 1、编程建议和示例代码: 无论你使用的编程语言是Python、R、MATL…...

Go Gin Gorm Casbin权限管理实现 - 1. Casbin概念介绍以及库使用
1. 核心概念 核心配置中含两部分模型配置以及策略配置,给出两个示范配置,在此基础上对实际请求进行分析。 1.1 Model 模型文件,存储了请求定义(request_definition),策略定义(policy_definition),匹配规则(matchers)&a…...

JUC第十五讲:JUC集合-ConcurrentHashMap详解(面试的重点)
JUC第十五讲:JUC集合-ConcurrentHashMap详解 本文是JUC第十五讲:JUC集合-ConcurrentHashMap详解。JDK1.7之前的ConcurrentHashMap使用分段锁机制实现,JDK1.8则使用数组链表红黑树数据结构和CAS原子操作实现ConcurrentHashMap;本文…...

【TensorFlow Hub】:有 100 个预训练模型等你用
要访问TensorFlow Hub,请单击此处 — https://www.tensorflow.org/hub 一、说明 TensorFlow Hub是一个库,用于在TensorFlow中发布,发现和使用可重用模型。它提供了一种使用预训练模型执行各种任务(如图像分类、文本分析等…...

vulnhub靶机doubletrouble
下载地址:doubletrouble: 1 ~ VulnHub 主机发现 arp-scan -l 端口扫描 nmap --min-rate 1000 -p- 192.168.21.151 端口服务扫描 nmap -sV -sT -O -p22,80 192.168.21.151 漏洞扫描 nmap --scriptvuln -p22,80 192.168.21.151 先去看看web页面 这里使用的是qdpm …...

【数据结构】排序算法(二)—>冒泡排序、快速排序、归并排序、计数排序
👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.冒泡排序 2.快速排序 2.1Hoare版 2.2占…...

SpringCloud-消息组件
1 简介 了解过RabbitMQ后,可能我们会遇到不同的系统在用不同的队列。比如系统A用的Kafka,系统B用的RabbitMQ,但是没了解过Kafka,因此可以使用Spring Stream,它能够屏蔽地产,像JDBC一样,只关心SQ…...

oringin的x轴(按x轴规定值)绘制不规律的横坐标
1.双击x轴 2.选择刻度线标签 3.选择刻度...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...

用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...