python绘制带有误差棒的条形图

文章目录

    • bar和barh
    • 加入误差棒
    • 定制误差棒颜色

bar和barh

matplotlib中,通过barbarh来绘制条形图,分别表示纵向和横向的条形图。二者的输入数据均主要为高度x和标签height,示例如下

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(8)
fig = plt.figure()
ax = fig.add_subplot(1,2,1)
ax.bar(x.astype(str), x)
ax = fig.add_subplot(1,2,2)
ax.barh(x.astype(str), x)
plt.show()

效果为

在这里插入图片描述
其中,左侧为纵向的条形图,右侧为横向的条形图,二者分别由barbarh实现。

加入误差棒

bar或者barh中,误差线由xerr, yerr来表示,其输入值为 1 × N 1\times N 1×N或者 2 × N 2\times N 2×N维数组。

errs = np.random.rand(2, 8)
fig = plt.figure()
ax = fig.add_subplot(1,2,1)
ax.bar(x.astype(str), x, yerr=errs, capsize=5)
ax = fig.add_subplot(1,2,2)
ax.barh(x.astype(str), x, xerr=errs, capsize=5)
plt.show()

从代码可知,纵向的条形图和横向的条形图有着不同的误差棒参数,其中纵向的条形图用yerr作为误差棒;横向条形图用xerr做误差棒,效果如图所示

在这里插入图片描述
如果反过来,那么效果会非常滑稽

errs = np.random.rand(2, 8)
fig = plt.figure()
ax = fig.add_subplot(1,2,1)
ax.bar(x.astype(str), x, xerr=errs, capsize=5)
ax = fig.add_subplot(1,2,2)
ax.barh(x.astype(str), x, yerr=errs, capsize=5)
plt.show()

在这里插入图片描述

在熟悉基础功能之后,就可以对条形图和误差棒进行更高级的定制。barbarh函数的定义为

Axes.bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)
Axes.barh(y, width, height=0.8, left=None, *, align='center', data=None, **kwargs)

其中,x, y, height, width等参数自不必多说,而颜色、边框颜色等的定制参数,在**kwarg中,可通过下列参数来搞定

  • color 控制条形图颜色
  • edgecolor 控制条形图边框颜色
  • linewidth 控制条形图边框粗细
  • ecolor 控制误差线颜色
  • capsize 误差棒端线长度

上面的参数中,凡是涉及颜色的,均支持单个颜色和颜色列表,据此可对每个数据条进行定制。

定制误差棒颜色

下面就对条形图和误差棒的颜色进行定制

xs = np.arange(1,6)
errs = np.random.rand(5)
colors = ['red', 'blue', 'green', 'orange', 'pink']plt.bar(xs.astype(str), xs, yerr=errs, color='white',edgecolor=colors, ecolor=colors)
plt.show()

其中,color表示条形图的数据条内部的颜色,此处设为白色。然后将数据条的边框和误差棒,均设为colors,即红色、蓝色、绿色、橘黄色以及粉色,最终得到效果如下

在这里插入图片描述

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

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

相关文章

使用RabbitMQ

使用RabbitMQ 1 Docker安装RabbitMQ 1.1 安装RabbitMQ # 下载含有管理页面的镜像 docker pull rabbitmq:3.8.8-management# 创建容器 # 5672:应用访问端口;15672:控制台Web端口号; docker run -itd \ --namemy-rabbitmq \ --re…

html,css笔记1

这里写目录标题 一、快捷键及基础常识基础框架2.lang语言种类3.字符集4.HTML常用标签4.1标题标签(重要)4.2段落和换行标签(重要)4.3文本格式化标签 一、快捷键及基础常识 1.快速复制一行 快捷键:shiftalt下箭头 光标定位到要复制的一行 2.…

CAD绘制三维升旗台

首先绘制长方体的底座 用交叉对角线来定位,绘制一个小一点的矩形,用来定位 大概的效果: 沿着矩形的一个角绘制三个长方体,形成护栏 用阵列或者复制等形成四个角的护栏 旋转,换成真实的效果图: 添加一个圆…

Leetcode刷题笔记--Hot11-20

1--有效的括号(20) 主要思路: 利用栈,遍历字符串,遇到左括号则入栈,遇到右括号则出栈,并判断出栈元素是否与右括号匹配; 当字符串有效时,栈为空(所有左括号都…

多元回归预测 | Matlab麻雀算法(SSA)优化极限梯度提升树XGBoost回归预测,SSA-XGBoost回归预测模型,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 麻雀算法(SSA)优化极限梯度提升树XGBoost回归预测,SSA-XGBoost回归预测模型,多变量输入模型,多变量输入模型,matlab代码回归预测,多

飞轮储能系统的建模与MATLAB仿真(永磁同步电机作为飞轮驱动电机)

简介 飞轮储能系统由于其高储能密度、高效率、轻污染的优点而越来越受到重视。飞轮储能系统以高速旋转的飞轮为依托,通过电力电子设备实现电能与动能的相互转化,从而在负载调峰、功率平抑、不间断电源等多领域都有很好的应用表现。 本文选用永磁同步电机…

【C++】list模拟实现

🚀 作者简介:一名在后端领域学习,并渴望能够学有所成的追梦人。 🚁 个人主页:不 良 🔥 系列专栏:🛸C 🛹Linux 📕 学习格言:博观而约取&#xff0…

【大语言模型】15分钟快速掌握LangChain以及ChatGLM

10分钟快速掌握LangChain LangChain简介LangChain中的核心概念1. Components and Chains2. Prompt Templates and Values3. Example Selectors4. Output Parsers5. Indexes and Retrievers6. Chat Message History7. Agents and Tookits LangChain的代码结构1. LangChain中提供…

二叉树前中后序的非递归实现

前言 : 递归我们会有一些问题的 为什么有递归就一定有非递归呢??首先递归是有一定缺陷的 递归真正的缺陷是,每一个程序运行起来呢都是一个线程的形式,但是每一个线程都会有独立的栈空间,但是栈空间是很…

性能优化(一)JMeter使用

简介: jmeter 是 apache 公司基于 java 开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简 单。因为 jmeter 是 java 开发的,所以运行的时候必须…

Tkinter_鼠标选中样式

前言 使用tkinter库创建窗口应用程序示例,包含不同鼠标样式标签。 一、方法 import tkinter as tkclass Mouse_Style:def __init__(self):self.root tk.Tk()self.root.title(样式)self.root.geometry("200x5201100150")self.interface()def interface(…

Hbase drop 表卡住没有响应

在实际工作中遇到过重新创建一个hbase的hive外部表,在 disable table_name; drop table_name 在drop table_name卡住 最后有提示报错。 建议各位查看下表有无lock的情况, 查看和释放hbase lock可以通过如下方式来查看 pid获取: 在 Ma…