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中设置变量访问权限的方法
Apr 27 Python
Python模块结构与布局操作方法实例分析
Jul 24 Python
pyqt5简介及安装方法介绍
Jan 31 Python
python爬虫爬取淘宝商品信息(selenum+phontomjs)
Feb 24 Python
Flask框架配置与调试操作示例
Jul 23 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
Sep 17 Python
python 控制Asterisk AMI接口外呼电话的例子
Aug 08 Python
Python如何实现动态数组
Nov 02 Python
python随机数分布random均匀分布实例
Nov 27 Python
Python实现密码薄文件读写操作
Dec 16 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
Dec 25 Python
Python中json.dumps()函数的使用解析
May 17 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
PHP4实际应用经验篇(7)
2006/10/09 PHP
php 常用字符串函数总结
2008/03/15 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
2017/02/04 PHP
简略说明Javascript中的= =(等于)与= = =(全等于)区别
2013/04/16 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
2016/05/16 Javascript
JS简单实现获取元素的封装操作示例
2017/04/07 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
2017/05/05 jQuery
js中document.write和document.writeln的区别
2018/03/11 Javascript
在node中使用jwt签发与验证token的方法
2019/04/03 Javascript
vue 项目引入echarts 添加点击事件操作
2020/09/09 Javascript
Vue开发中常见的套路和技巧总结
2020/11/24 Vue.js
js实现简单的轮播图效果
2020/12/13 Javascript
python字典序问题实例
2014/09/26 Python
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
python使用turtle绘制国际象棋棋盘
2019/05/23 Python
Python学习笔记之变量、自定义函数用法示例
2019/05/28 Python
Django实现分页显示效果
2019/10/31 Python
pycharm运行scrapy过程图解
2019/11/22 Python
Python自动化测试笔试面试题精选
2020/03/12 Python
基于matplotlib中ion()和ioff()的使用详解
2020/06/16 Python
keras做CNN的训练误差loss的下降操作
2020/06/22 Python
Python通过递归函数输出嵌套列表元素
2020/10/15 Python
bonprix荷兰网上商店:便宜的服装、鞋子和家居用品
2020/07/04 全球购物
煤矿班组长竞聘书
2014/03/31 职场文书
房屋委托书范本
2014/04/04 职场文书
导师评语大全
2014/04/26 职场文书
2015年建筑工作总结报告
2015/05/04 职场文书
春风化雨观后感
2015/06/11 职场文书
傅雷家书读书笔记
2015/06/29 职场文书
高中优秀作文(范文)
2019/08/15 职场文书
导游词之南京中山陵
2019/11/27 职场文书
Java实现二维数组和稀疏数组之间的转换
2021/06/27 Java/Android
python多次执行绘制条形图
2022/04/20 Python
Python使用pyecharts控件绘制图表
2022/06/05 Python
vue3 自定义图片放大器效果的示例代码
2022/07/23 Vue.js