Python绘图入门:使用Matplotlib绘制柱状图
Python绘图入门:使用Matplotlib绘制柱状图
柱状图是一种常见的数据可视化方式,能够直观地展示不同类别之间的数据差异。在Python中,Matplotlib是一个非常强大且灵活的绘图库,它不仅能绘制简单的图表,还能创建复杂的多层次图形。本篇博客将带你一步步了解如何使用Matplotlib绘制一个基本的柱状图,并介绍一些常用的图表优化技巧。
1. 安装Matplotlib
在开始之前,确保你已经安装了Matplotlib库。如果还没有安装,可以使用以下命令进行安装:
pip install matplotlib
2. 绘制简单柱状图
这里我们有一组有关2024年高效毕业生就业去向的数据:
去向 | 2023届 | 2024届 |
---|---|---|
单位就业 | 57.6% | 55.5% |
慢就业(暂无具体打算) | 18.9% | 19.1% |
自由职业 | 13.2% | 13.7% |
国内继续学习 | 4.9% | 6.5% |
数据来源:智联招聘
首先,我们来绘制一个最简单的柱状图,将2024届高校毕业生去向数据进行可视化:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
# 数据
employments = ['单位就业', '慢就业(暂无具体打算)', '自由职业', '国内继续学习']
rates = [55.5, 19.1, 13.7, 6.5]# 绘制柱状图
plt.bar(employments, rates)# 添加标题和标签
plt.title('2024届高校毕业生去向')
plt.xlabel('毕业去向')
plt.ylabel('比率(%)')# 显示图表
plt.show()
在这段代码中,plt.bar()
用于创建柱状图,plt.title()
、plt.xlabel()
和plt.ylabel()
分别用于添加标题和坐标轴标签。最后,plt.show()
用于显示图表。
3. 自定义柱状图
为了让图表更加美观和信息丰富,我们可以对柱状图进行自定义。例如,可以改变柱子的颜色、添加网格、显示数值标签等。
# 自定义颜色和网格
plt.bar(categories, sales, color='skyblue')
plt.grid(axis='y', linestyle='--', alpha=0.7)# 显示数值标签
for i, value in enumerate(sales):plt.text(i, value + 0.5, str(value), ha='center')plt.show()
在这个例子中,我们将柱子颜色设为浅蓝色,并在y轴方向添加虚线网格。同时,使用plt.text()
函数在每个柱子上方显示具体数值。
这里需要注意的是,添加无指向型注释文本有两种,text()
和figtext()
方法。
text(x, y, s, fontdict=None, withdash=, **kwargs) |
---|
- x, y:表示注释文本的位置。
- s:表示注释文本的内容。
- horizontalalignment或ha:表示水平对齐的方式,可以取值为’center’、'right’或 ‘left’。
- verticalalignment或va:表示垂直对齐的方式,可以取值为’center’、‘top’、‘bottom’、‘baseline’或’center_baseline’
figtext(x, y, s, *args, **kwargs) |
---|
- x, y Float 放置文本的位置。默认情况下,它在图形坐标[0,1]中
- s String 文字字串
两种方法的不同之处在于,text()
以图形的横纵坐标进行取值,figtext()
使用完整的图形作为坐标,其中左下角表示(0,0),右上角表示(1,1)。图的中心是(0.5,0.5)。
4. 横向柱状图
如果数据类别较多,或者类别名称较长,横向柱状图可能会更适合。
# 绘制柱状图
plt.barh(employments, rates, color='lightcoral')plt.grid(axis='y', linestyle='--', alpha=0.7)# 添加标题和标签
plt.title('2024届高校毕业生去向')
plt.xlabel('比率(%)')
plt.ylabel('')
使用plt.barh()
可以轻松创建横向柱状图,其他设置与竖向柱状图类似。
5. 多系列柱状图
如果你有多个系列的数据需要同时展示,可以使用多系列柱状图来对比不同系列之间的关系。例如,我们可以对比2023届和2024届的高校毕业生去向:
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']# 数据
employments = ['单位就业', '慢就业(暂无具体打算)', '自由职业', '国内继续学习']
rates_2024 = [55.5, 19.1, 13.7, 6.5]
rates_2023 = [55.5, 19.1, 13.7, 6.5]# 设置柱子的位置
x = np.arange(len(employments))
width = 0.35 # 柱子的宽度# 绘制多系列柱状图
plt.bar(x - width/2, rates_2024, width, label='2024届')
plt.bar(x + width/2, rates_2023, width, label='2023届')# 添加标题和标签
plt.title('2024和2023届高校毕业生去向对比')
plt.xlabel('就业去向')
plt.ylabel('比率(%)')
plt.xticks(x, employments) # 将x轴标签设置为就业去向
plt.legend() # 显示图例plt.show()
在这个例子中,np.arange()
用于生成x轴的位置数组,width
设置了柱子的宽度。我们使用了两个plt.bar()
来绘制不同系列的柱子,并通过调整它们的x位置来使其并排显示。
这里没有显示数值标签,请你学习完本博客后补充代码实现该功能。
6. 结语
通过这篇博客,你已经学习了如何使用Matplotlib创建和自定义柱状图。无论是简单的单系列柱状图,还是复杂的多系列柱状图,Matplotlib都能轻松实现。掌握这些基础后,你可以进一步探索Matplotlib的更多功能,例如叠加柱状图、柱状图与折线图组合等。请关注“pythons数据可视化专栏”,带你入门python绘图。
希望这篇文章对你有所帮助,欢迎在评论区分享你的问题和经验!
往期推荐:
1.使用 Matplotlib 绘制折线图
2.Python 绘图入门
相关文章:
Python绘图入门:使用Matplotlib绘制柱状图
Python绘图入门:使用Matplotlib绘制柱状图 柱状图是一种常见的数据可视化方式,能够直观地展示不同类别之间的数据差异。在Python中,Matplotlib是一个非常强大且灵活的绘图库,它不仅能绘制简单的图表,还能创建复杂的多…...
Qt5编译qmqtt库使用MQTT协议连接华为云IOT完成数据上传与交互
一、前言 随着物联网技术的发展,越来越多的设备通过网络互相连接,形成了庞大的智能系统。这些系统能够收集、分析并响应各种数据,从而实现自动化控制和智能化管理。在这个背景下,MQTT 成为了一个广泛使用的轻量级消息传输协议,特别适用于资源受限的环境,如移动应用或远程…...
mysql速起架子
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz 下载mysql tar xvJf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz 解压 mv mysql-8.0.21-linux-glibc2.12-x86_64 mysql-8.0 改名 去到bin目录 cd bin mkdir data gr…...
云动态摘要 2024-08-14
给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新优惠与活动 注册阿里云免费领云服务器_云服务器ECS_阿里云 阿里云 2024-08-14 云上试用新玩法,个人享300元免费额度,企业享660元免费额度,多种规格随心试 [免费体验…...
Elasticsearch 桶(Bucket)聚合详解及示例
在 Elasticsearch 中,桶(Bucket)聚合是一种强大的工具,它允许我们对数据进行分组并统计每组的数量。这种聚合类型对于理解数据的分布和进行分组统计非常有用。本文将详细介绍 Elasticsearch 的桶聚合,并提供完整的示例…...
Django基础知识
文章目录 新建Django项目helloworld关联数据库admin 新建Django项目 创建django-admin startproject project_name 运行 python manage.py runserver 创建app: python manage.py startapp app_name 目录: 配置文件 settings.py 路由配置 urls.py 项目管理 manage.p…...
使用 nginx 搭建代理服务器(正向代理 https 网站)指南
简介 正向代理 简介 在企业开发环境中,局域网内的设备通常需要通过正向代理服务器访问互联网。正向代理服务器充当中介,帮助客户端请求外部资源并返回结果。局域网内也就是俗称的内网,局域网外的互联网就是外网,在一些特殊场景内…...
深入解析亚马逊数据采集工具选择:Data API/Scrape API/Pangolin采集器
引言 在当今电商领域,亚马逊已成为全球最大的在线零售平台之一。随着竞争的加剧和市场的多样化,商家和企业不仅需要优秀的产品和服务,还需要通过深入的数据分析来制定更加精准的市场策略。因此,采集亚马逊站点数据已成为企业实现…...
探索Linux多样性:主流发行版及其应用场景
目录 引言 Debian:稳定性的标杆 Ubuntu:易用性的代表 Red Hat Enterprise Linux (RHEL):企业的首选 Fedora:创新的前沿 CentOS:开源的稳定之选 Arch Linux:高级用户的定制天堂 Gentoo:性…...
CentOS7.6 HAproxy-7层负载均衡集群——实施方案
目录 1、前期环境准备 1.准备4台主机 1. 设置主机名 2. 设置IP地址然后重启网卡 3. 关闭防火墙和selinux 4. 全部的服务器完成时间统一 二、配置haproxy(192.168.200.11)服务器 1. 安装haproxy 2. haproxy 配置中分成五部分内容 3. 配置HAproxy(192.168.2…...
升级ubuntu22.10到24.04
将所有kinetic换成noble,noble是24.04源,sed或手动改。 cd /etc/aptgrep -nr kinetic将old-releases.ubuntu.com替换成国内的地址,因为2210国内源没找到,没有了,但是现在更新到24.04,国内是有的。 apt up…...
YOLO好像也没那么难?
“学YOLO的念头是想整个游戏外挂!” 目录 基本原理 模型推理 IOU交并比 NMS非极大值抑制 模型训练 损失函数LOSS 代码实现 YOLO学习渠道 基本原理 模型推理 学习一个新的神经网络结构,作者认为整明白输入和输出是怎么回事就OK了,至于…...
html编写贪吃蛇页面小游戏(可以玩)
<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>贪吃蛇小游戏</title><style>body {…...
【淘宝购买的源码靠谱吗】
文章目录 前言一、项目需求二、卖家评价三、价格质量四、源码细节五、技术支持六、合法性七、市场环境八、风险评估总结 前言 在淘宝上购买的源码质量和可靠性存在不确定性。淘宝作为一个综合性电商平台,提供了各种各样的商品和服务,包括源代码。然而&a…...
C++ | list
前言 本篇博客讲解cSTL中的list 💓 个人主页:普通young man-CSDN博客 ⏩ 文章专栏:C_普通young man的博客-CSDN博客 ⏩ 本人giee: 普通小青年 (pu-tong-young-man) - Gitee.com 若有问题 评论区见📝 🎉欢迎大家点赞&…...
Vue3 v-bind 指令用法
在 Vue 3 中,v-bind 指令用于将表达式的值绑定到 DOM 元素的属性上。这个指令的语法与 Vue 2 相同,但有一些细微的变化和改进。 以下是 Vue 3 中 v-bind 指令的基本用法: 基本用法: <button v-bind:class"{ active: isActive }"…...
通过Go示例理解函数式编程思维
一个孩子要尝试10次、20次才肯接受一种新的食物,我们接受一种新的范式,大概不会比这个简单。-- 郭晓刚 《函数式编程思维》译者 函数式编程(Functional Programming, 简称fp)是一种编程范式,与命令式编程(Imperative Programming)、面向对象编…...
刷题DAY7
三角形面积 题目:已知三角形的边长a,b和从、,求其面积 输入:输入三个实数a,b,c,表示三边长 输出:输出面积,保留三位小数 输入:1 2 2.5 输出࿱…...
离线数据开发流程小案例-图书馆业务数据
参考 https://blog.csdn.net/m53931422/article/details/103633452 https://www.cnblogs.com/jasonlam/p/7928179.html https://cwiki.apache.org/confluence/display/Hive/LanguageManualUDF https://medium.com/jackgoettle23/building-a-hive-user-defined-function-f6abe9…...
GPT-5:未来已来,你准备好了吗
GPT-5:未来已来,你准备好了吗? 在人工智能的浩瀚星空中,自然语言处理(NLP)技术如同璀璨星辰,不断引领着技术革新的浪潮。而在这股浪潮中,OpenAI的GPT(Generative Pre-tr…...
白骑士的Matlab教学高级篇 3.2 并行计算
系列目录 上一篇:白骑士的Matlab教学高级篇 3.1 高级编程技术 并行计算是一种通过同时执行多个计算任务来加速程序运行的方法。在MATLAB中,并行计算工具箱(Parallel Computing Toolbox)提供了丰富的并行计算功能,使用…...
JS中【解构赋值】知识点解读
解构赋值(Destructuring Assignment)是 JavaScript 中一种从数组或对象中提取数据的简便方法,可以将其赋值给变量。这种语法可以让代码更加简洁、清晰。下面我会详细讲解解构赋值的相关知识点。 1. 数组解构赋值 数组解构赋值允许你通过位置…...
【Pyspark-驯化】一文搞懂Pyspark中对json数据处理使用技巧:get_json_object
【Pyspark-驯化】一文搞懂Pyspark中对json数据处理使用技巧:get_json_object 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 …...
第10章 无持久存储的文件系统 (1)
目录 前言 10.1 proc文件系统 10.1.1 /proc 内容 本专栏文章将有70篇左右,欢迎关注,查看后续文章。 前言 即存在于内存中的文件系统。如: proc: sysfs: 即/sys目录。 内容不一定是ASCII文本,可能是二进…...
如何把命令行创建python虚拟环境与pycharm项目管理更好地结合起来
1. 问题的提出 我在linux或windows下的某个目录如“X”下使用命令行的方式创建了一个python虚拟环境(参考文章),对应的目录为myvenv, 现在我想使用pycharm创建python项目myproject,并且利用虚拟环境myvenv,怎么办&…...
keepalived+lvs高可用负载均衡集群配置方案
配置方案 一、配置主备节点1. 在主备节点上安装软件2. 编写配置文件3. 启动keepalived服务 二、配置web服务器1. 安装并启动http服务2. 编写主页面3.配置虚拟地址4. 配置ARP 三、测试 服务器IP: 主负载均衡服务器 master 192.168.152.71备负载均衡服务器 backup 192…...
Azure OpenAI Swagger Validation Failure with APIM
题意:Azure OpenAI Swagger 验证失败与 APIM 问题背景: Im converting the Swagger for Azure OpenAI API Version 2023-07-01-preview from json to yaml 我正在将 Azure OpenAI API 版本 2023-07-01-preview 的 Swagger 从 JSON 转换为 YAML。 My S…...
haproxy高级功能配置
介绍HAProxy高级配置及实用案例 一.基于cookie会话保持 cookie value:为当前server指定cookie值,实现基于cookie的会话黏性,相对于基于 source 地址hash 调度算法对客户端的粒度更精准,但同时也加大了haproxy负载,目前此模式使用…...
XXL-JOB分布式定时任务框架快速入门
文章目录 前言定时任务分布式任务调度 1、XXL-JOB介绍1.1 XXL-JOB概述1.2 XXL-JOB特性1.3 整体架构 2、XXL-JOB任务中心环境搭建2.1 XXL-JOB源码下载2.2 IDEA导入xxljob工程2.3 初始化数据库2.4 Docker安装任务管理中心 3、XXL-JOB任务注册测试3.1 引入xxl-job核心依赖3.2 配置…...
直流电机及其驱动
直流电机是一种将电能转换为机械能的装置,有两个电极,当电极正接时,电机正转,当电极反接时,电机反转。 直流电机属于大功率器件,GPIO口无法直接驱动,需要配合电机驱动电路来操作 TB6612是一款双…...
电子商务网站的运营一般需要做哪些准备/短视频排名seo
摘要: 用数据说话,这是当前很流行的话题,本文将数据管理过程划分成4个层次,并阐述企业如何达到这四个层次。 1.初级量化管理:以数据“感知”项目的状况(相当于CMMI2级) 2.中级量化管理ÿ…...
网站建设网络推广的好处/比较正规的代运营
下载网页 import urllib2 def download(url):print "Downloading:",urltry:html urllib2.urlopen(url).read()except urllib2.URLError as e:print Download error:,e.reasonhtml Nonereturn html设置用户代理 使用可辨识的用户代理可以避免我们的网络爬虫碰到一…...
这样建立自己的网站/网站推广基本方法是
本文实例介绍了Android实现ImageView图片双击放大及缩小的相关技巧,分享给大家供大家参考,具体内容如下public class DoubleScaleImageView extends ImageView implements OnTouchListener, OnGlobalLayoutListener {private boolean isFirst false;pri…...
wordpress 主体安装/北京seo排名方法
最近项目的代码使用fortify工具扫描了一下,发现了项目中存在的一些问题,在以后代码编写的过程中要注意,避免出现类似的错误。以下为本次代码分析工具FORTIFY对代码的分析结果。这些问题虽然古老、简单然而经典,也是需要引起重视。…...
wordpress改代码/长沙seo男团
出品人简介章淼 百度资深研发工程师,1994年进入清华大学计算机系学习,2004年博士毕业,之后留校任教至2006年。1997年至2006年在清华大学从事互联网协议和网络体系结构的研究。2006年至2012年在搜狗、腾讯等多家公司从事用户产品的研发工作。2…...
怎么把网站挂在服务器/自媒体营销模式有哪些
你的电脑桌面看上去是不是这个样子?如果你有下面几个“坏习惯”,电脑里的文件不乱才怪:文件层级太深:比如说一个销售数据excel文件存放在“D盘-2017年-大灵通项目-西大街门店-月报表”,这个目录下,看上去一…...