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 XML RPC服务器端和客户端实例
Nov 22 Python
shelve  用来持久化任意的Python对象实例代码
Oct 12 Python
python对配置文件.ini进行增删改查操作的方法示例
Jul 28 Python
对python中两种列表元素去重函数性能的比较方法
Jun 29 Python
python numpy 按行归一化的实例
Jan 21 Python
Python 实现微信防撤回功能
Apr 29 Python
Python中查看变量的类型内存地址所占字节的大小
Jun 26 Python
python之拟合的实现
Jul 19 Python
如何在Django配置文件里配置session链接
Aug 06 Python
python中property属性的介绍及其应用详解
Aug 29 Python
Python实现Restful API的例子
Aug 31 Python
python实现简易淘宝购物
Nov 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
多数据表共用一个页的新闻发布
2006/10/09 PHP
php数据库配置文件一般做法分享
2012/07/07 PHP
PHP数据类型的总结分析
2013/06/13 PHP
解决php扩展安装不生效问题
2019/10/25 PHP
Javscript删除数组中指定元素并返回新数组
2014/03/06 Javascript
jQuery网页版打砖块小游戏源码分享
2015/08/20 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
jquery对复选框(checkbox)的操作汇总
2016/01/13 Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
2016/02/25 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
微信小程序开发之Tabbar实例详解
2017/01/09 Javascript
jQuery点击弹出层弹出模态框点击模态框消失代码分享
2017/01/21 Javascript
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
jquery实现放大镜简洁代码(推荐)
2017/06/08 jQuery
详解ES7 Decorator 入门解析
2019/02/18 Javascript
vue项目打包上传github并制作预览链接(pages)
2019/04/19 Javascript
全面分析JavaScript 继承
2019/05/30 Javascript
JS+CSS实现随机点名(实例代码)
2019/11/04 Javascript
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
javascript中导出与导入实现模块化管理教程
2020/12/03 Javascript
[06:16]DOTA2守卫传承者——职业选手谈心路历程
2015/02/26 DOTA
浅谈function(函数)中的动态参数
2017/04/30 Python
python实现word 2007文档转换为pdf文件
2018/03/15 Python
12个Python程序员面试必备问题与答案(小结)
2019/06/24 Python
python 标准差计算的实现(std)
2019/07/29 Python
python 公共方法汇总解析
2019/09/16 Python
jupyter notebook参数化运行python方式
2020/04/10 Python
Allsole美国/加拿大:英国一家专门出售品牌鞋子的网站
2018/10/21 全球购物
给分销商的致歉信
2014/01/14 职场文书
青年文明号创建承诺
2014/03/31 职场文书
2014年节能工作总结
2014/12/18 职场文书
2015年社区文体活动总结
2015/03/25 职场文书
计划生育责任书
2015/05/09 职场文书
幼儿园大班教育随笔
2015/08/14 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers
MySQL 数据库范式化设计理论
2022/04/22 MySQL