python绘制双柱形图代码实例


Posted in Python onDecember 14, 2017

图表是比干巴巴的表格更直观的表达,简洁、有力。工作中经常遇到的场景是,有一些数值需要定时的监控,比如服务器的连接数、活跃用户数、点击某个按钮的人数,并且通过邮件或者网页展示出来。当我们想关注比数值本身更多的信息(像数值的变化、对比或异常),图表就非常有用了。把数值转化为图片要依赖第三方库的帮忙,在Python之中最好的图表库叫matplotlib。(一直觉得,Python最大的优势就是丰富的第三方库,让你能轻易实现各种需求)

matplotlib,顾名思义就是提供了一整套和matlab相似的API,它的文档相当完备,示例页面提供了上百个图表的入门代码,可以说只有你想不到的,没有它做不到的。

举个稍复杂的例子,小明和小红两个同学各有语文、数学、英语的课程成绩,用一个双柱形图输出各项成绩的对比:

#!/usr/bin/env python
# coding: utf-8

import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt
import numpy as np

# 必须配置中文字体,否则会显示成方块
# 注意所有希望图表显示的中文必须为unicode格式
custom_font = mpl.font_manager.FontProperties(fname='/Library/Fonts/华文细黑.ttf')

font_size = 10 # 字体大小
fig_size = (8, 6) # 图表大小

names = (u'小明', u'小红') # 姓名
subjects = (u'语文', u'数学', u'英语') # 科目
scores = ((65, 90, 75), (85, 80, 90)) # 成绩

# 更新字体大小
mpl.rcParams['font.size'] = font_size
# 更新图表大小
mpl.rcParams['figure.figsize'] = fig_size
# 设置柱形图宽度
bar_width = 0.35

index = np.arange(len(scores[0]))
# 绘制「小明」的成绩
rects1 = plt.bar(index, scores[0], bar_width, color='#0072BC', label=names[0])
# 绘制「小红」的成绩
rects2 = plt.bar(index + bar_width, scores[1], bar_width, color='#ED1C24', label=names[1])
# X轴标题
plt.xticks(index + bar_width, subjects, fontproperties=custom_font)
# Y轴范围
plt.ylim(ymax=100, ymin=0)
# 图表标题
plt.title(u'企鹅班同学成绩对比', fontproperties=custom_font)
# 图例显示在图表下方
plt.legend(loc='upper center', bbox_to_anchor=(0.5, -0.03), fancybox=True, ncol=5, prop=custom_font)

# 添加数据标签
def add_labels(rects):
  for rect in rects:
    height = rect.get_height()
    plt.text(rect.get_x() + rect.get_width() / 2, height, height, ha='center', va='bottom')
    # 柱形图边缘用白色填充,纯粹为了美观
    rect.set_edgecolor('white')

add_labels(rects1)
add_labels(rects2)

# 图表输出到本地
plt.savefig('scores_par.png')

最终图表显示如下:

python绘制双柱形图代码实例

总结

从上面的代码片段可以了解到:matplotlib是一个自由度非常高的图表库,能够实现从颜色、字体等基础属性到图例、网格等图表属性的定制输出。

以上就是本文关于python绘制双柱形图代码实例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

如有不足之处就,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python中zip()函数用法实例教程
Jul 31 Python
举例详解Python中threading模块的几个常用方法
Jun 18 Python
通过实例浅析Python对比C语言的编程思想差异
Aug 30 Python
Python爬虫爬取美剧网站的实现代码
Sep 03 Python
python分布式环境下的限流器的示例
Oct 26 Python
Python字典及字典基本操作方法详解
Jan 30 Python
Python判断两个list是否是父子集关系的实例
May 04 Python
python实现音乐下载的统计
Jun 20 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
Sep 17 Python
详解numpy.meshgrid()方法使用
Aug 01 Python
Pytorch 的损失函数Loss function使用详解
Jan 02 Python
Python中的tkinter库简单案例详解
Jan 22 Python
Python实现一个Git日志统计分析的小工具
Dec 14 #Python
用matplotlib画等高线图详解
Dec 14 #Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
Dec 14 #Python
python实现发送邮件功能代码
Dec 14 #Python
python正则实现计算器功能
Dec 14 #Python
Python数据结构与算法之使用队列解决小猫钓鱼问题
Dec 14 #Python
python实现BackPropagation算法
Dec 14 #Python
You might like
CodeIgniter表单验证方法实例详解
2016/03/03 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
2019/06/17 PHP
常用js脚本
2006/12/03 Javascript
在IE下:float属性会影响offsetTop的取值
2006/12/22 Javascript
简洁短小的 JavaScript IE 浏览器判定代码
2010/03/21 Javascript
JS中的log对象获取以及debug的写法介绍
2014/03/03 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
2014/06/16 Javascript
NodeJS学习笔记之网络编程
2014/08/03 NodeJs
JS实现自适应高度表单文本框的方法
2015/02/25 Javascript
JavaScript中神奇的call()方法
2015/03/12 Javascript
基于Jquery和html5实现炫酷的3D焦点图动画
2016/03/02 Javascript
关于JS中的apply,call,bind的深入解析
2016/04/05 Javascript
nodejs个人博客开发第五步 分配数据
2017/04/12 NodeJs
Angular 4依赖注入学习教程之InjectToken的使用(八)
2017/06/04 Javascript
JS开发中基本数据类型具体有哪几种
2017/10/19 Javascript
Vue v2.5 调整和更新不完全问题
2017/10/24 Javascript
jquery中为什么能用$操作
2019/06/18 jQuery
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python的函数嵌套的使用方法
2014/01/24 Python
用Python实现换行符转换的脚本的教程
2015/04/16 Python
python 设置文件编码格式的实现方法
2017/12/21 Python
python3.6连接MySQL和表的创建与删除实例代码
2017/12/28 Python
windows环境下tensorflow安装过程详解
2018/03/30 Python
详解python中的Turtle函数库
2018/11/19 Python
django框架事务处理小结【ORM 事务及raw sql,customize sql 事务处理】
2019/06/27 Python
解析python实现Lasso回归
2019/09/11 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
2020/03/24 Python
sklearn和keras的数据切分与交叉验证的实例详解
2020/06/19 Python
Python: glob匹配文件的操作
2020/12/11 Python
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
编程实现当输入某产品代码则打印出该产品记录的功能
2014/05/03 面试题
化学学院毕业生自荐信范文
2013/12/17 职场文书
群众路线自我剖析及整改措施
2014/11/04 职场文书
2014年高二班主任工作总结
2014/12/16 职场文书
团员自我评价范文
2015/03/10 职场文书
活动费用申请报告
2015/05/15 职场文书