python调用matplotlib模块绘制柱状图


Posted in Python onOctober 18, 2019

我们可以调用matplotlib 绘制我们的柱状图,柱状图可以是水平的也可以是竖直的。

在这里我先记录下竖直的柱状图怎么绘制

在这里一般用到的函数就是bar

# bar(left, height, width=0.8, bottom=None, hold=None, **kwargs) 
# 绘制柱形图 
# left:柱形图的x坐标 
# height柱形图的高度,以0.0为基准 
# width:柱形图的宽度,默认0.8 
# facecolor:颜色 
# edgecolor:边框颜色n 
# bottom:表示底部从y轴的哪个刻度开始画 
# yerr:应该是对应的数据的误差范围,加上这个参数,柱状图头部会有一个蓝色的范围标识,标出允许的误差范围,在水平柱状图中这个参数为xerr

在这里我一般特别喜欢将柱状图的边缘颜色设置为白色,因为这样画出来比较好看

eg.

plt.bar(x,+y1,width=0.8,facecolor="#9999ff",edgecolor="white",yerr=error)

下面来说一下画bar chart 的步骤

首先我们需要引入两个模块:

import numpy as np 
import matplotlib.pyplot as plt 

import numpy as np 
import matplotlib.pyplot as plt 
n = 12 
# 生成一个1-12的列表,不包括12,[ 0 1 2 3 4 5 6 7 8 9 10 11] 
x = np.arange(n) 
# np.random.uniform(0.5,1.0,n),生成n个0.5-1.0之间的随机数 
y1 = 3 * np.random.uniform(0.5,1.0,n) 
y2 = 3 * np.random.uniform(0.5,1.0,n) 
# 在这里我们是使用一个随机生成函数生成了两组y的值,生成的这个随机数是服从均匀分布的
# 如果我们的数值比较少我们可以直接给y赋值
# y = [5,7,3]

# 生成一个包含有n个值,均为0.2的list,表示允许的误差范围[-0.2,0.2] 
error = [0.2,] * n 

# bar(left, height, width=0.8, bottom=None, hold=None, **kwargs) 
# 绘制柱形图 
# left:柱形图的x坐标 
# height柱形图的高度,以0.0为基准 
# width:柱形图的宽度,默认0.8 
# facecolor:颜色 
# edgecolor:边框颜色n 
# bottom:表示底部从y轴的哪个刻度开始画 
# yerr:应该是对应的数据的误差范围,加上这个参数,柱状图头部会有一个蓝色的范围标识,标出允许的误差范围,在水平柱状图中这个参数为xerr 
plt.bar(x,+y1,width=0.8,facecolor="#9999ff",edgecolor="white",yerr=error) 
plt.bar(x,-y2,facecolor="#ff9999",edgecolor="white") 
# 绘制文字,显示柱状图形的值 
for x,y1,y2 in zip(x,y1,y2): 
 plt.text(x+0.4,y1+0.05,'%.2f' % y1,ha='center',va='bottom') 
 plt.text(x+0.4,-(y2+0.05),'%.2f' % y2,ha='center',va='top') 

plt.ylim(-3.5,3.5) 
plt.show() 

如果我们需要的是给我们柱状图绘制一些标记,比如横坐标和纵坐标的值,这个时候我们可以像下面这样做。这个例子我用的是官网上的代码。

# Credit: Josh Hemann

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocator
from collections import namedtuple


n_groups = 5

means_men = (20, 35, 30, 35, 27)
std_men = (2, 3, 4, 1, 2)

means_women = (25, 32, 34, 20, 25)
std_women = (3, 5, 2, 3, 3)

fig, ax = plt.subplots()

index = np.arange(n_groups)
bar_width = 0.35

opacity = 0.4
error_config = {'ecolor': '0.3'}

rects1 = ax.bar(index, means_men, bar_width,
    alpha=opacity, color='b',
    yerr=std_men, error_kw=error_config,
    label='Men')

rects2 = ax.bar(index + bar_width, means_women, bar_width,
    alpha=opacity, color='r',
    yerr=std_women, error_kw=error_config,
    label='Women')

ax.set_xlabel('Group')
ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.set_xticks(index + bar_width / 2)
ax.set_xticklabels(('A', 'B', 'C', 'D', 'E'))
ax.legend()

fig.tight_layout()
plt.show()

在这里我们设置的X的坐标以及上边的标签,我们主要的代码是:

ax.bar(index, means_men, bar_width,
    alpha=opacity, color='b',
    yerr=std_men, error_kw=error_config,
    label='Men')

ax.set_xticks(index + bar_width / 2) # 设置坐标的其实坐标
ax.set_xticklabels(('A', 'B', 'C', 'D', 'E'))

这里的bar函数的参数和我们开始介绍的是一样的,只是我们在设置坐标的时候,一般是我们的条形图的中间所以我们要把宽度除以2

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python采用raw_input读取输入值的方法
Aug 18 Python
Python魔术方法详解
Feb 14 Python
DES加密解密算法之python实现版(图文并茂)
Dec 06 Python
Python3.8中使用f-strings调试
May 22 Python
python cumsum函数的具体使用
Jul 29 Python
基于pandas中expand的作用详解
Dec 17 Python
利用keras加载训练好的.H5文件,并实现预测图片
Jan 24 Python
python获取栅格点和面值的实现
Mar 10 Python
python爬虫数据保存到mongoDB的实例方法
Jul 28 Python
python实现每天自动签到领积分的示例代码
Aug 18 Python
Python 操作SQLite数据库的示例
Oct 16 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
Mar 02 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
Oct 18 #Python
树莓派4B+opencv4+python 打开摄像头的实现方法
Oct 18 #Python
python使用Matplotlib改变坐标轴的默认位置
Oct 18 #Python
python调用Matplotlib绘制分布点图
Oct 18 #Python
Python 异常处理Ⅳ过程图解
Oct 18 #Python
python库matplotlib绘制坐标图
Oct 18 #Python
python实现WebSocket服务端过程解析
Oct 18 #Python
You might like
几个php应用技巧
2008/03/27 PHP
PHP 登录完成后如何跳转上一访问页面
2014/01/14 PHP
教你如何解密 “ PHP 神盾解密工具 ”
2014/06/20 PHP
屏蔽PHP默认设置中的Notice警告的方法
2016/05/20 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
jquery 入门教程 [翻译] 推荐
2009/08/17 Javascript
jquery实现商品拖动选择效果代码(自写)
2013/05/28 Javascript
javascript ajax的5种状态介绍
2014/08/18 Javascript
jQuery 处理页面的事件详解
2015/01/20 Javascript
js实现三张图(文)片一起切换的banner焦点图
2015/08/25 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
vue-cli单页应用改成多页应用配置详解
2017/07/14 Javascript
vue.js中使用echarts实现数据动态刷新功能
2019/04/16 Javascript
微信打开网址添加在浏览器中打开提示的办法
2019/05/20 Javascript
Express结合Webpack的全栈自动刷新
2019/05/23 Javascript
如何进行微信公众号开发的本地调试的方法
2019/06/16 Javascript
使用 JavaScript 创建并下载文件(模拟点击)
2019/10/25 Javascript
node.js中 redis 的安装和基本操作示例
2020/02/10 Javascript
在js文件中引入(调用)另一个js文件的三种方法
2020/09/11 Javascript
原生js+canvas实现验证码
2020/11/29 Javascript
在vue中动态修改css其中一个属性值操作
2020/12/07 Vue.js
Python生成不重复随机值的方法
2015/05/11 Python
Python使用pickle模块存储数据报错解决示例代码
2018/01/26 Python
解决Djang2.0.1中的reverse导入失败的问题
2019/08/16 Python
解决Keras中CNN输入维度报错问题
2020/06/29 Python
canvas学习笔记之绘制简单路径
2019/01/28 HTML / CSS
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
中东最大的在线宠物店:Dubai Pet Food
2020/06/11 全球购物
运动会标语
2014/06/21 职场文书
商务邀请函
2015/01/30 职场文书
只用Python就可以制作的简单词云
2021/06/07 Python
python3中apply函数和lambda函数的使用详解
2022/02/28 Python
Spring 使用注解开发
2022/05/20 Java/Android
Linux磁盘管理方法介绍
2022/06/01 Servers