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中列表元素连接方法join用法实例
Apr 07 Python
Python3遍历目录树实现方法
May 22 Python
python黑魔法之编码转换
Jan 25 Python
Python AES加密实例解析
Jan 18 Python
python提取包含关键字的整行数据方法
Dec 11 Python
深入浅析Python 函数注解与匿名函数
Feb 24 Python
在django项目中导出数据到excel文件并实现下载的功能
Mar 13 Python
django中嵌套的try-except实例
May 21 Python
python os模块常用的29种方法使用详解
Jun 02 Python
Keras之fit_generator与train_on_batch用法
Jun 17 Python
在django中查询获取数据,get, filter,all(),values()操作
Aug 09 Python
详解在OpenCV中如何使用图像像素
Mar 03 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/09/05 PHP
PHP获取数组最后一个值的2种方法
2015/01/21 PHP
PHP多维数组指定多字段排序的示例代码
2018/05/16 PHP
laravel5实现微信第三方登录功能
2018/12/06 PHP
Dom操作之兼容技巧分享
2011/09/20 Javascript
JavaScript实现找出数组中最长的连续数字序列
2014/09/03 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
2014/12/18 Javascript
js鼠标点击图片切换效果实现代码
2015/11/19 Javascript
JS设置cookie、读取cookie
2016/02/24 Javascript
js对象浅拷贝和深拷贝详解
2016/09/05 Javascript
5种JavaScript脚本加载的方式
2017/01/16 Javascript
[03:01]完美盛典趣味短片 DOTA2年度最佳&拉胯英雄
2019/12/07 DOTA
深入理解python函数递归和生成器
2016/06/06 Python
ansible作为python模块库使用的方法实例
2017/01/17 Python
Python虚拟环境项目实例
2017/11/20 Python
python函数式编程学习之yield表达式形式详解
2018/03/25 Python
Django实现文件上传下载
2019/10/06 Python
Python坐标线性插值应用实现
2019/11/13 Python
Python爬虫爬取新闻资讯案例详解
2020/07/14 Python
HTML5添加禁止缩放功能
2017/11/03 HTML / CSS
Html5页面中的返回实现的方法
2018/02/26 HTML / CSS
Marriott国际:万豪国际酒店查询预订
2017/09/25 全球购物
美国市场上最实惠的送餐服务:Dinnerly
2018/03/18 全球购物
小橄榄树:Le Petit Olivier
2018/04/23 全球购物
中国双语服务优势的在线购票及活动平台:247tickets
2018/10/26 全球购物
美国购买体育、音乐会和剧院门票网站:SelectATicket
2019/09/08 全球购物
宿舍保安职务说明书
2014/02/25 职场文书
项目投资意向书
2014/04/01 职场文书
树转促学习心得体会
2014/09/10 职场文书
党支部组织生活会整改方案
2014/09/30 职场文书
社区党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
中学生旷课检讨书2篇
2014/10/09 职场文书
家庭贫困证明
2015/06/16 职场文书
欧也妮葛朗台读书笔记
2015/06/30 职场文书
创业计划书之都市休闲农庄
2019/12/28 职场文书
Spring Data JPA使用JPQL与原生SQL进行查询的操作
2021/06/15 Java/Android