Matplotlib | 绘制柱状图

简介

安装 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.mzph.cn/bicheng/20404.shtml

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

相关文章

黑白群晖激活AME(Advanced Media Extention)

黑群晖激活Advanced Media Extensions(AME)解码HEVC视频和HEIC图片 声明:此教程在正版群晖系统中进行的操作,虽然也能用于非正版系统中AME的安装,但是在非正版系统中安装AME属于破解行为,对系统造成的影响和…

这里一定有你不知道的VS调试技巧

目录 使用环境:Visual Studio 2022,如无特殊说明,都是在Debug、x64环境下编译 一.什么是BUG 二.调试快捷键 F9:创建断电或取消断点 条件断点:满足这个条件才触发 F5:启动调试,经常⽤来直接跳到下⼀个断…

20 - grace数据处理 - 地下水储量计算过程分解 - 地下水储量计算

20 - grace数据处理 - 地下水储量计算过程分解 - 地下水储量计算 0 引言1 地下水储量变化计算过程0 引言 由水平衡方程可以将地下水储量的计算过程分解为3个部分,第一部分计算陆地水储量变化、第二部分计算地表水储量变化、第三部分计算冰后回弹改正、第四部分计算地下水储量变…

Vue:Bin Code Editor格式化JSON编辑器

最终效果如下图所示, Bin Code Editor安装 npm或yarn安装命令如下, npm i bin-code-editor -S # or yarn add bin-code-editor 组件注册 全局注册 在 main.js 中写入导入以下内容, import Vue from vue; import CodeEditor from bin-cod…

服务器数据恢复—异常断电导致ESXi虚拟机无法启动的数据恢复案例

服务器数据恢复环境: 某大厂PS4000服务器,服务器上部署VMware ESXi虚拟化平台。 服务器故障: 机房断电,重启后服务器中的某台虚拟机不能正常启动。管理员查看虚拟机配置文件,发现无法启动的虚拟机的配置文件除了磁盘文…

【每日刷题】Day53

【每日刷题】Day53 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 1019. 链表中的下一个更大节点 - 力扣(LeetCode) 2. 116. 填充每个节点的下一…

Exce 两列一组对齐呈现,缺失补 0

Excel 里有 多 组数据,每组 2 列,每组长度不同。第 1 列是编号,列之间的编号有重复。 ABCDEFGH1Mass10Mass11Mass12Mass132802200581309088146532802225938133306824779282975598142002482273148413154988335698822331305832720485110460842…

计算机考研|408 值得选择吗?有哪些优势?

408当然非常值得报考,但是现在的408已经卷麻了! 现在越来越多的学校改考408,光今年就有6所发布通知,宣布改考408,分别是: 这对考408的学生肯定是好消息,后面可能还会有学校陆续改考,…

一、实现一个简单的 Google Chrome 扩展程序

目录 🧭 效果展示 # 图示效果 a. 拓展程序列表图示效果: b. 当前选项卡页面右键效果: c. 拓展程序消息提示效果: 📇 项目目录结构 # 说明 # 结构 # 文件一览 ✍ 核心代码 # manifest.json # background.j…

华为 2024 届实习校园招聘-硬件通⽤/单板开发——第五套

华为 2024 届实习校园招聘-硬件通⽤/单板开发——第五套 部分题目分享,完整版带答案(有答案和解析,答案非官方,未仔细校正,仅供参考)(共十套,每套四十题选择题)获取(WX:…

java期末细节知识整理(一)

1.java程序的执行过程:先编译后解释。也就是我们在idea写的文件叫做java源文件(.java结尾的文件),经过编译器会生成字节码文件(.class结尾的文件),再通过解释器进行实现 2.栈用来存储引用类型的…

易语言本地IP一键切换程序(附带源码)

易语言本地IP一键切换程序 效果图部分源码源码领取下期更新预报 效果图 部分源码 .判断开始 (单选框1.选中 = 真)标签5.标题 = #换行符 + “正在切换IP.”.如果真 (运行 (“netsh interface ip set address ” + #引号 &#xff…

PHP火狼大灌篮游戏源码微信+手机wap源码带控制

使用此接口可以实现支付宝、QQ钱包、微信支付与财付通的即时到账,免签约,无需企业认证。PHP易支付源码,免签约不需要企业的支付平台源码,彩虹第三四方在线支付系统源码,易支付token合作者商户申请源码,app和网页都可以…

ubuntu--Linux运行时格式

Linux运行时格式 \r 错误 用vim打开那个执行错误的 sh脚本文件 进入最后一行模式下 :set ff显示 fileformatdos 解决方法 : :set ffunix查看是否更改 : :set ff结果 : 保存退出即可 :x运行, 没有出错 * Author: cpu_code * Date: 2020-07-29 19:07:52 * LastEditTime: 2020…

HTTP --tcp

TCP TCP连接 tcp/ip是全球计算机以及网络设备都在使用的一种常见的分组交换网络分层协议集,客户端可以打开一条tcp/ip连接,连接到可能运行在世界各地的服务器应用程序,一旦连接建立起来了,在客户端和服务器的计算机之间交换的报…

el-date-picker的使用,及解决切换type时面板样式错乱问题

这里选择器的类型可以选择日月年和时间范围&#xff0c;根据类型不同&#xff0c;el-date-picker的面板也展示不同&#xff0c;但是会出现el-date-picker错位&#xff0c;或者面板位置和层级等问题。 源代码&#xff1a; <el-selectv-model"dateType"placeholder&…

BOOST_SREATCH

BOOST Boost是一个由C社区开发的开源库&#xff0c;为C语言标准库提供扩展。这个库由C标准委员会库工作组成员发起&#xff0c;旨在提供大量功能和工具&#xff0c;帮助C开发者更高效地编写代码。Boost库强调跨平台性和对标准C的遵循&#xff0c;因此与编写平台无关&#xff0…

如何防止商业秘密泄露?商业秘密保护措施有哪些?

商业秘密是企业核心竞争力的关键所在&#xff0c;其保密性直接关系到企业的生存和发展。 因此&#xff0c;防止商业秘密泄露&#xff0c;确保商业秘密的安全至关重要。 本文将探讨如何有效防止商业秘密泄露&#xff0c;并重点介绍域智盾软件作为解决方案&#xff0c;在商业秘密…

Jvm(一)之栈、堆、方法区

前言-与正文无关 生活远不止眼前的苦劳与奔波&#xff0c;它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界中&#xff0c;我们往往容易陷入工作的漩涡&#xff0c;忘记了停下脚步&#xff0c;感受周围的世界。让我们一起提醒自己&#xff0c;要适时放慢脚步…

【机器学习系列】掌握随机森林:从基础原理到参数优化的全面指南

目录 目录 一、随机森林简介 (一)随机森林模型的基本原理如下&#xff1a; (二)随机森林模型的优点包括&#xff1a; (三)森林中的树的生成规则如下&#xff1a; (四)在随机森林中&#xff0c;每棵树都使用不同的训练集进行训练&#xff0c;原因如下 随机森林的分类性能&…