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 ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
Jun 10 Python
Python中list初始化方法示例
Sep 18 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
Jan 22 Python
python通过elixir包操作mysql数据库实例代码
Jan 31 Python
python 3.6.4 安装配置方法图文教程
Sep 18 Python
Python图像滤波处理操作示例【基于ImageFilter类】
Jan 03 Python
利用python和百度地图API实现数据地图标注的方法
May 13 Python
pandas计数 value_counts()的使用
Jun 24 Python
使用Python调取任意数字资产钱包余额功能
Aug 15 Python
PyTorch的Optimizer训练工具的实现
Aug 18 Python
django haystack实现全文检索的示例代码
Jun 24 Python
python字典key不能是可以是啥类型
Aug 04 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
用PHP调用数据库的存贮过程
2006/10/09 PHP
PHP zlib扩展实现页面GZIP压缩输出
2010/06/17 PHP
微盾PHP脚本加密专家php解密算法
2020/09/13 PHP
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
php实现给一张图片加上水印效果
2016/01/02 PHP
Swoole扩展的6种模式深入详解
2021/03/04 PHP
google 搜索框添加关键字实现代码
2010/04/24 Javascript
关于JS数组追加数组采用push.apply的问题
2014/06/09 Javascript
jQuery结合ajax实现动态加载文本内容
2015/05/19 Javascript
javascript实现全角半角检测的方法
2015/07/23 Javascript
纯JavaScript代码实现移动设备绘图解锁
2015/10/16 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
2016/01/27 Javascript
总结在前端排序中遇到的问题
2016/07/19 Javascript
js数组去重的hash方法
2016/12/22 Javascript
angularjs实现的购物金额计算工具示例
2018/05/08 Javascript
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
django使用channels2.x实现实时通讯
2018/11/28 Javascript
在Vue环境下利用worker运行interval计时器的步骤
2019/08/01 Javascript
vue 强制组件重新渲染(重置)的两种方案
2019/10/29 Javascript
Vue组件模板的几种书写形式(3种)
2020/02/19 Javascript
antd 表格列宽自适应方法以及错误处理操作
2020/10/27 Javascript
paramiko模块安装和使用(远程登录服务器)
2014/01/27 Python
python基于queue和threading实现多线程下载实例
2014/10/08 Python
对python Tkinter Text的用法详解
2018/10/11 Python
用Python实现校园通知更新提醒功能
2019/11/23 Python
浅谈python多线程和多线程变量共享问题介绍
2020/04/17 Python
英国医生在线预约:Top Doctors
2019/10/30 全球购物
Java的基础面试题附答案
2016/01/10 面试题
课程改革实施方案
2014/03/16 职场文书
中药学专业求职信
2014/05/31 职场文书
博士生导师推荐信
2014/07/08 职场文书
讲文明知礼仪演讲稿
2014/09/13 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
2015年专项整治工作总结
2015/04/03 职场文书
团组织推荐意见
2015/06/05 职场文书
PostgreSQL事务回卷实战案例详析
2022/03/25 PostgreSQL