当前位置: 首页 > news >正文

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中发布,发现和使用可重用模型。它提供了一种使用预训练模型执行各种任务(如图像分类、文本分析等&#xf…...

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.选择刻度...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看

文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...