Bar函数--Matplotlib

2023-11-07

函数Bar()–用于绘制柱状图

使用bar绘制柱状图的过程中涉及到中文字体的显示问题
使用动态参数配置方法,指定了中文黑体

import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']

换成中文字体之后又会遇到负号无法正常显示的情况,因此增加了第二行配置

mpl.rcParams['axes.unicode_minus'] = False

先来看下如果没有上面两行参数的情况
可以看到中文无法正常显示:
在这里插入图片描述
增加

mpl.rcParams['font.sans-serif'] = ['SimHei'] 

之后,看到负号无法正常显示
在这里插入图片描述

于是增加了第二行代码

mpl.rcParams['axes.unicode_minus'] = False

然后中文与负号可以正常输出:
在这里插入图片描述
Bar函数功能: Make a bar plot
                        绘制柱形图
The bars are positioned at x with the given alignment. Their dimensions are given by height and width. The vertical baseline is bottom (default 0)。Many parameters can take either a single value applying to all bars or a sequence of values, one for each bar.

这些柱Bar以给定的对齐方式放在x处,柱的大小通过高度和宽度指定,垂直基线在底部(默认0的位置)。许多参数可以采用两种方式赋值:一是对所有柱形赋予同一个值;二是传入一系列值,每个柱子一个单独的值。

函数语法:
bar(x, height, width=0.8, bottom=None, *, align=‘center’, data=None, **kwargs)

函数参数:
x: float or array-like。The x coordinates of the bars. See also align for the alignment of the bars to the coordinates.
浮点型或类数组对象;柱形的的x轴坐标。另请参见‘align’参数了解柱与坐标的对齐方式

height: float or array-like. The height(s) of the bars.
浮点型或类数组对象;柱形的高度
width: float or array-like, default: 0.8The width(s) of the bars.
浮点型或类数组对象;柱形的宽度,默认值为0.8
bottom: float or array-like, default: 0。The y coordinate(s) of the bars bases.
浮点型或类数组对象; 柱形基座的y坐标,默认0.

align: {‘center’, ‘edge’}, default: ‘center’。Alignment of the bars to the x coordinates:
‘center’: Center the base on the x positions.
‘edge’: Align the left edges of the bars with the x positions.
To align the bars on the right edge pass a negative width and align=‘edge’.
对齐方式: 中间,边缘 ,默认为中间。柱与x轴坐标的对其方式
中间:x轴坐标在中间位置
边缘:x轴坐标在左边
设置x轴坐标在右边需要传入宽度为负值同时对其方式为边缘

Other Parameters:
color: color or list of color, optional。The colors of the bar faces.
可选参数,颜色或颜色列表 。柱形颜色
edgecolor: color or list of color, optional。The colors of the bar edges.
可选参数:颜色或颜色列表 。柱形边缘的颜色
linewidth: float or array-like, optional。Width of the bar edge(s). If 0, don’t draw edges.
线条宽度:可选参数,浮点型或类数组 。柱形线的宽度,若值为0,则不绘制边线
tick_label: str or list of str, optional 。The tick labels of the bars. Default: None (Use default numeric labels.)
可选参数,字符串或字符串列表,柱形的刻度线标签,默认:使用数字标签

在这里插入图片描述
这里的参数x是横轴坐标,默认使用数字标签,柱形的高度由参数height控制,也就是代码中的y值
接下来使用tick_label参数对横坐标重新命名:命名为 [‘q’, ‘a’, ‘c’, ‘e’, ‘r’, ‘j’, ‘b’, ‘p’],使用tick_label参数

在这里插入图片描述
使用color参数修改柱形图填充颜色
使用同一种颜色填充各个柱子
在这里插入图片描述
使用不同颜色填充各个柱子

在这里插入图片描述
使用align参数 设置横坐标的位置,默认中间
在这里插入图片描述
align = ‘edge’展示在左边缘
在这里插入图片描述
设置align在右边缘,需要同时设置width参数为负值且align为edge
在这里插入图片描述
使用edgecolor设置柱子的边缘线颜色
在这里插入图片描述
使用linewidth参数设置边缘线的宽度
在这里插入图片描述
**kwargs: Rectangle properties
其他关键参数: 定义矩形柱子的属性
其中的color,edgecolor,linewidth上面已经列举过,接下来关注hatch参数

在这里插入图片描述

使用hatch参数在柱子矩形内部填充镶嵌。
hatch = ‘/’
在这里插入图片描述
hatch =‘o’
在这里插入图片描述
完整代码附下:

# 绘制柱形图

# 导入第三方数据库
import matplotlib as mpl
import matplotlib.pyplot as plt

# 修改字体以显示中文并解决负号不能正常显示问题
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False

# 产生数据
x = [1, 2, 3, 4, 5, 6, 7, 8]
y = [3, 1, 4, 5, 8, 9, 7, 2]

# 1. 绘制柱形图
plt.bar(x, y)

#  2. 使用 tick_label 参数对横坐标重新命名
plt.bar(x, y, tick_label=['q', 'a', 'c', 'e', 'r', 'j', 'b', 'p'])

# 3. 修改柱形图填充颜色
# 3.1 使用同一种颜色填充各个柱子
plt.bar(x, y, tick_label=['q', 'a', 'c', 'e', 'r', 'j', 'b', 'p'], color='cyan')
# 3.2 使用不同颜色填充各个柱子
plt.bar(x, y, tick_label=['q', 'a', 'c', 'e', 'r', 'j', 'b', 'p'],
        color=['red','yellow','green','cyan','blue','purple', 'brown','pink'])


# 4. 使用align参数 设置横坐标的位置,默认中间
# 4.1 设置横坐标在中间
# 参数align = 'center'
plt.bar(x, y, tick_label=['q', 'a', 'c', 'e', 'r', 'j', 'b', 'p'],
        color=['brown'], align='edge')
# 4.2 设置横坐标在左边缘
# 参数align = 'edge'
plt.bar(x, y, tick_label=['q', 'a', 'c', 'e', 'r', 'j', 'b', 'p'],
        color=['brown'], align='edge')
# 4.3 设置横坐标在右边缘
# 参数align = 'edge' 且 width为负值
plt.bar(x, y, tick_label=['q', 'a', 'c', 'e', 'r', 'j', 'b', 'p'],
        color=['brown'], width=-0.8, align='edge')

# 5. 设置柱子边缘线颜色
plt.bar(x, y, tick_label=['q', 'a', 'c', 'e', 'r', 'j', 'b', 'p'],
        color=['brown'], edgecolor='green')

# 6. 使用linewidth参数设置柱子边宽度
plt.bar(x, y, tick_label=['q', 'a', 'c', 'e', 'r', 'j', 'b', 'p'],
        color=['brown'], edgecolor='green', linewidth=2)

# 7. 使用hatch参数设置柱子内部填充镶嵌
plt.bar(x, y, tick_label=['q', 'a', 'c', 'e', 'r', 'j', 'b', 'p'],
        color=['brown'], edgecolor='green', linewidth=2, hatch='/')

plt.title('柱形图')

plt.show()

另:x为柱形的x轴坐标,因此,如果x的浮点数没有按照顺序来排列,则出来的结果也不会按照x列表的顺序展示,而是会对应到相应的坐标位置。图中柱形图并没有按照x的列表顺序 [3, 1, 4, 5, 8, 9, 7, 2]来从左向右依次展示,而是按照x坐标先后的顺序进行,没有x=6的值,则相应位置显示空白。
在这里插入图片描述

参数 b o t t o m bottom bottom默认设置
底部:设置各箱的底部从哪个值开始,默认从0开始
在这里插入图片描述
参数 b o t t o m = 3 bottom=3 bottom=3,图形底部从3开始
在这里插入图片描述
参数 b o t t o m bottom bottom为与柱子相同数量的数组,柱子向上移动想用的高度
在这里插入图片描述

参考文献:
[1] https://matplotlib.org/api/_as_gen/matplotlib.pyplot.bar.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Bar函数--Matplotlib 的相关文章

随机推荐

  • Layui项目实战

    使用语言 C Js Html 使用框架 MVC Layui 使用插件 JQuery Layui 一 Layui父窗体前端代码 1 Html代码 div class layui col md12 style padding 8px div c
  • (Linux无线网卡WIFI上网 一 )USB-WIFI驱动移植

    导航 Linux无线网卡WIFI上网 一 USB WIFI驱动移植 Linux无线网卡WIFI上网 二 WPA SUPPLICANT Linux下的wifi管理工具移植 Linux无线网卡WIFI上网 三 嵌入式Linux下的WIFI使用
  • 常见十四种的Java算法

    一 简单列出常见的Java中14种算法 序号 简称 英文 简介 1 二分查找法 Binary Search 二分查找要求线性表必须采用顺序存储结构 而且表中元素按关键字有序排列 2 冒泡排序算法 Bubble Sort 它重复地走访过要排序
  • python搭建ip池

    在爬取网站的时候我们有时候会遭受封ip等显现 因此我们需要搭建自己的ip池用于爬虫 代码过程简述 1 爬取代理ip网站信息 2 将获取的信息处理得到ip等关键信息 3 保存首次获取的ip信息并检测其是否可用 4 检测完毕将可用ip保存 搭建
  • 操作系统重点_重点:运动系统

    操作系统重点 The Locomotion System for Unity has previously been briefly mentioned on this blog but this post will go more in
  • 前端自定义网页鼠标右键菜单

    监听全局上下文菜单 document addEventListener contextmenu function e 阻止默认 e preventDefault 自定义鼠标右键菜单栏 console log 鼠标右击
  • 高并发下的订单和库存处理

    介绍 前提 分布式系统 高并发场景 商品A只有100库存 现在有1000或者更多的用户购买 如何保证库存在高并发的场景下是安全的 预期结果 1 不超卖 2 不少卖 3 下单响应快 4 用户体验好 下单思路 下单时生成订单 减库存 同时记录库
  • IDEA-idea中解决Java程序包不存在问题

    新导入的JavaWeb项目在编译时报出Error 18 33 java 程序包com google common collect不存在的错误 看看这是什么东西 原来是google相关包 这个包的下载地址 https www mvnjar c
  • JavaWeb~网页刷新/前端构造HTTP请求(form表单、ajax异步构造)/同步与异步/封装ajax/jQuery库引入

    文本目录 网页刷新 网页前端构造HTTP请求 form表单构造 ajax构造各种请求 ajax介绍 什么是同步 异步请求 同步异步区别理解 什么情况下使用ajax ajax运行机制 代码举例 封装ajax方法 网页刷新 F5和ctrl f5
  • 最新PMP/PMBOK Guide 6th Edition项目管理知识体系指南中文第六版

    http www hellokittycn com chapter 1262
  • 多技术融合推动,元宇宙应用破局向前

    报告编委 黄勇 爱分析合伙人 首席分析师 文鸿伟 爱分析高级分析师 外部专家 按姓氏拼音排序 唐虓 艾迪普科技 融合创新中心总经理 特别鸣谢 按拼音排序 报告摘要 元宇宙作为下一代互联网的典型代表 很可能将是人类数字化生存的终极形态 将带来
  • RTT下移植LVGL到W601_文件系统移植

    RTT下移植LVGL到W601 显示驱动移植 声明 个人学习笔记 不保证正确 参考资料 移植参考 DFS参考 图片 图片在线转换 环境 win10 keil5 硬件 正点原子w601开发板 步骤流程 1 在显示驱动移植完成的基础上添加tf卡
  • 初次使用vscode配置方法

    从vs换到vscode 花了一天时间终于把各种问题解决 吐血整理 如有疑问 可以在评论区交流 1 安装c c 扩展 安装v1 8 4版 稳定 2 安装code runner 右键即可运行代码 操作简单 3 安装mingw 安装在线版会出现
  • 计算机视觉论文-2021-06-22

    本专栏是计算机视觉方向论文收集积累 时间 2021年6月22日 来源 paper digest 欢迎关注原创公众号 计算机视觉联盟 回复 西瓜书手推笔记 可获取我的机器学习纯手推笔记 直达笔记地址 机器学习手推笔记 GitHub地址 1 T
  • Mysql-DDL(数据定义语言)

    show databases 查看所有数据库 create databse 数据库名 创建数据库 use database 数据库名 使用数据库 删除表格如果存在 drop table if exists mumber1 create TA
  • Angular快速上手--创建Hero类

    0 前言 真实的英雄当然不止一个名字 在 src app 文件夹中为 Hero 类创建一个文件 并添加 id 和 name 属性 1 操作 src app app component ts复制并修改内容 export class Hero
  • ensp设计校园网,期末作业,课程设计报告

    1 实现功能 基本实现如下网络核心功能 1 三层架构设计 本课题按照三层网络结构 接入层 汇聚层 核心层 进行设计和规划 接入层要求提供较多的网络入口 汇聚层实现对接入层网络的互联 核心层完成校园内部和外部数据的交换 并实现路由和安全功能
  • 怎么查看vue源码

    有很多同学和我一样使用一段时间 vue 框架后 对它的源码就有了兴趣 但是不知道在哪里找 vue js 源码 随意创建一个vue项目 或者已有项目 找到根路径平级的 node modules 文件夹 往下拉 拉多一下 在文件夹尾巴一截的地方
  • SpringBoot笔记

    目录 开发准备 导出 常用注解 导出excel到指定位置 导出excel到指定web 导入 将指定位置Excel导入并显示至web 使用ExcelWriter基于模板导出 开发准备 1 导入依赖
  • Bar函数--Matplotlib

    函数Bar 用于绘制柱状图 使用bar绘制柱状图的过程中涉及到中文字体的显示问题 使用动态参数配置方法 指定了中文黑体 import matplotlib as mpl mpl rcParams font sans serif SimHei