Matplotlib | 绘制柱状图

news2025/1/17 21:14:08

简介

安装 Matplotlib

开始绘制

简单柱状图

改变颜色

改变纹理

改变边框样式

改变透明度

改变柱子宽度

改变图表标题

​编辑

并列柱状图

横向柱状图

堆叠柱状图

更多函数


简介

柱状图(Bar chart),是一种以长方形的长度为变量的表达图形的统计图。

由一系列高度不等的纵向条形表示数据分布的情况,能直观地对比不同数据,以及快速判断最大值、最小值等。

柱状图有不同的绘制方式,可以是纵向,也可以是横向,可以是平面,也可以是立体。

以下就是一种最普通的柱状图:

那么,开始吧!(记得 点赞收藏 !!) 


安装 Matplotlib

打开 CMD, 输入(前提是要安装 Python):

pip install matplotlib

如果下载较慢,建议使用国内镜像:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib

开始绘制

在 Python 中,数据可视化第三方库 Matplotlib 可以很方便快捷地绘制图表。

在 Matplotlib 中,绘制柱状图的函数如下:

bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)

简单柱状图

先看代码(请结合注释食用!)

其中,修改 name 即可改变横轴标签,修改 value 即可改变数值。

import matplotlib.pyplot as plt    # 导入第三方库
name = [1, 2, 3, 4, 5]             # 横轴上的标签
value = [10, 25, 17, 8, 20]        # 数值(和横轴标签一一对应)
plt.bar(name, value)               # 绘制柱状图
plt.show()                         # 显示柱状图

改变颜色

修改全部颜色:

参数名称为 fc / facecolor, 参数值可以为:r, g, b, y, c, m, k, w 等,更多关于颜色的可以看这篇文章:一文搞懂matplotlib中的颜色设置,讲的很全。

import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
plt.bar(name, value, fc="r")    # 修改全部颜色为红色
plt.show()

修改部分颜色:

参数名为 color。

import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
# 修改颜色分别为:红,黄,蓝,绿,黄
plt.bar(name, value, color=["r", "y", "b", "g", "y"])
plt.show()

改变纹理

参数名为 hatch,参数值可以为:/,o,O,x,-,+ 等。

import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
plt.bar(name, value, hatch="x")    # 将纹理改成"x"样纹路
plt.show()

改变边框样式

颜色参数:ec / edgecolor

线形参数:ls / linestyle,参数值可以为:-(实线),--(虚线)

线宽参数:lw / linewidth

import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
plt.bar(name, value, ec="black", ls="-", lw=2)  # 将边框改为黑色,实线,宽度为2
plt.show()

改变透明度

参数名称:alpha,参数值为 0 ~ 1 中的小数,默认为1.

import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
plt.bar(name, value, alpha=0.6)  # 透明度改为60%
plt.show()

改变柱子宽度

参数名称:width,参数一般在 0 ~ 1 之间,默认值为 0.8.

import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
plt.bar(name, value, width=0.6)  # 宽度改为 0.6
plt.show()

 

改变图表标题

函数:plt.title()

import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
plt.bar(name, value)
plt.title("TITLE") # 设置标题
plt.show()

并列柱状图

需要调整不同柱子的位置来实现并列,有些复杂。

import numpy as np  # 只是辅助生成列表用的

x = np.arange(3)
x1 = [79, 88, 80]
x2 = [80, 82, 83]

total_width, n = 0.6, 2
width = total_width / n
x = x - (total_width - width) / 2  # 现在的x是每个并列柱的第一柱的中心横坐标

plt.bar(x, x1,  width=width, label='Boy')                   # 图一
plt.bar(x + width, x2, width=width, label='Girl', fc='y')   # 图二
plt.xticks(np.arange(3), ['Chinese', 'Math', 'English'])    # 更改横轴标签
plt.legend()                                                # 添加图例
plt.title("Exam Result")
plt.show()

 

横向柱状图

函数名:plt.barh() ,参数和 bar() 差不多。

import matplotlib.pyplot as plt
name = [1, 2, 3, 4, 5]
value = [10, 25, 17, 8, 20]
plt.barh(name, value)
plt.show()

堆叠柱状图

参数名称:bottom,将堆叠在上面的图表中 bottom 设为下面的图表地数据即可。

x = ["team1", "team2", "team3"]
x1 = [5, 8, 4]
x2 = [6, 8, 11]
 
plt.bar(x, x1, label='boy')
plt.bar(x, x2, bottom=x1, label='girl')
plt.legend()
plt.show()

更多函数

plt.xticks()    # 横轴数据
plt.yticks()    # 纵轴数据
plt.xlabel()    # 横轴标题
plt.ylabel()    # 纵轴标题
plt.legend()    # 图例
plt.text()      # 文字

本文就到这里,也算是能画出一个美观的柱状图了!

如果本文对你有帮助的话,别忘 点赞收藏,防止下次找不到了!

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

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

相关文章

基于JSP的人才公寓管理系统

你好呀,我是计算机学长猫哥!如果有需求可以文末加我。 开发语言:Java 数据库:MySQL 技术:JSP技术 工具:浏览器(如360浏览器、谷歌浏览器、QQ浏览器等)、MySQL数据库 系统展示 …

实时数据传输:Django 与 MQTT 的完美结合

文章目录 准备工作创建 Django 项目与应用设置 MQTT 服务器编写 Django 视图编写前端模板发布 MQTT 消息运行 Django 项目 在当今互联网应用中,实时数据传输已经成为许多项目的核心需求。无论是社交媒体平台、在线游戏、金融交易还是物联网设备,都需要及…

OneCommander使用与安装手册

OneCommander使用与安装手册 一、引言 OneCommander是一款专为Windows 10和Windows 11用户设计的现代化文件管理器,它提供了直观、高效的文件浏览和管理体验。本手册将指导您完成OneCommander的安装过程,并介绍其主要功能和操作方法。 二、安装前准备…

8个免费下载音乐的网站,建议收藏!

1、My Free MP3 tools.liumingye.cn/music/ 一个好用且免费的在线音乐播放和下载网站,几乎收录了所有国内外大火的歌手和歌曲,可以通过歌手列表找单曲,也可以直接搜索歌手或歌曲名,下面还有一些热门搜索,可以直接播放…

BIO 探究二

接上文 BIO 初探究 文章目录 前言一、使用netty二、nio 客户端 与 bio 服务端,bio 服务端 与 nio 客户端总结# 未完待续 前言 提示:验证阻塞到底阻塞在什么地方 提示:以下是本篇文章正文内容,下面案例可供参考 一、使用netty 上…

Docker 部署 Redis Cluster 高性能高可用分片集群

文章目录 1、环境准备2、Cluster 集群讲解2.1、Cluster 介绍2.2、Cluster 和哨兵模式区别2.3、Cluster 如何分散存储数据 3、Cluster 搭建流程3.1、安装 Docker3.2、启动 Redis 容器3.3、创建 Cluster 集群 4、Cluster 集群测试4.1、读写操作4.2、故障转移 1、环境准备 准备6台…

Linux系统中qfile调用seek无法更新指定位置文件内容

一、问题描述 最近在移植qt程序到银河麒麟系统中,发现在Windows下调用seek接口更新二进制文件功能在麒麟系统中总是无法实现更新,调用的QFile接口也并未报错。 原代码实现方式如下: if (!m_writeFile->open(QIODevice::WriteOnly | QIODe…

GLM-4本地部署的实战教程

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

必应bing国内广告怎样开户投放呢?

企业都在寻找高效、精准的营销渠道以扩大品牌影响力,提升市场占有率,作为全球第二大搜索引擎,微软旗下的必应Bing凭借其卓越的搜索技术和庞大的用户基础,成为了众多企业拓展市场的首选广告平台。在中国,必应Bing广告以…

为什么3D渲染有的模型是黑的?---模大狮模型网

在3D建模和渲染的过程中,遇到模型渲染出来是黑色的情况并不罕见。这可能是由于多种原因导致的,包括但不限于材质设置问题、灯光配置不当、渲染设置错误等。 一、材质设置问题 材质丢失或错误:如果模型在导入或创建时材质没有正确加载或设置&…

AIGC实战!7个超热门的 Midjourney 关键词教程

一、剪纸风格 核心词: paper art(剪纸艺术) 关键技巧: 主体物:可以换成任意主角,Chinese illustration (中国风插画);艺术风格:paper art (剪纸…

Qt各发布版本介绍与选择

一.Qt各个主要版本介绍 1.Qt4 Qt4的第一个版本是Qt 4.0,发布于2005年6月1日。 Qt 4的最后一个版本是Qt 4.8.7,发布时间是2015年6月10日。 2.Qt5 (1)Qt5的第一个版本是Qt 5.0,发布于2012年12月19日。 (2&…

提高工作效率的神器有哪些?

在这个人工智能技术蓬勃发展的时代,很多AI工具极大地提升我们的工作效率,比如很多人在用的ChatGPT、Kimi,它们几乎无所不能,小编在日常工作也用它们,建议想抓住AI风口,或者是想用这些工具提升自己的朋友去学…

【云原生】Docker Compose 使用详解

目录 一、前言 二、Docker Compose 介绍 2.1 Docker Compose概述 2.2 Docker Compose特点 2.3 Docker Compose使用场景 三、Docker Compose 搭建 3.1 安装docker环境 3.2 Docker Compose安装方式一 3.2.1 下载最新版/如果不是最新可替换最新版本 3.2.2 设置权限 3.2.…

c++------类和对象(下)包含了this指针、构造函数、析构函数、拷贝构造等

文章目录 前言一、this指针1.1、this指针的引出1.2、 this指针的特性 二、类的默认的六个构造函数2.1、构造函数简述2.2构造函数 三、析构函数3.1、析构函数引出3.2、特点: 四、拷贝构造4.1、引入4.2、特征:4.3、默认拷贝构造函数 总结 前言 在本节中&a…

随身WiFi十大热门品牌优缺点分析!哪个品牌的随身wifi更值得买?随身wifi推荐测评!

格行随身wifi 【品牌特点】:服务好,性价比高,随身WiFi行业的“海底捞” 【优点】:专注物联网行业15年,产品和服务双驱动,综合实力和客户口碑领先 【缺点】:产品相对聚焦,产品类型…

springboot 实现kafka多源配置

文章目录 背景核心配置自动化配置类注册生产者、消费者核心bean到spring配置spring.factoriesyml配置使用 源码仓库 背景 实际开发中,不同的topic可能来自不同的集群,所以就需要配置不同的kafka数据源,基于springboot自动配置的思想&#xf…

springboot 图形验证码 前后端分离解决方案 easy-captcha

easy-captcha介绍 easy-captcha&#xff0c;提供了Java图形验证码&#xff0c;支持gif、中文、算术等类型&#xff0c;可用于Java Web、JavaSE等项目&#xff0c;是个很好用的工具库&#xff0c;文档比较完备。 用法 添加maven依赖 <!--图形验证码--><dependency&g…

Postman 加密接口测试 | 使用Rsa、Aes对参数加密

前言 做接口加密的测试也是上次遇到的&#xff0c;在这之前&#xff0c;都是在浏览器登录后&#xff0c;从请求头中复制 token 过来测试.... 说真的&#xff0c;一瞬间我都有点诧异&#xff0c;这样也太麻烦了吧~&#xff0c;因而也就产生了这篇文章。 还有一些问题&#xf…

Java学习Lambda表达式

Lambda表达式 有且只有一个未实现的方法叫做Lambda表达式&#xff0c;可以实现函数式编程 // 这个注解是用来检查你写的函数是否是函数式接口 FunctionalInterfaceinterface Myinterface {int sum(int a, int b);default String priteTitle(String name, int age, String sex)…