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 不关闭控制台的实现方法
Oct 23 Python
Python求算数平方根和约数的方法汇总
Mar 09 Python
python 实现在txt指定行追加文本的方法
Apr 29 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
Jul 09 Python
对python3中pathlib库的Path类的使用详解
Oct 14 Python
对pytorch网络层结构的数组化详解
Dec 08 Python
Python数据抓取爬虫代理防封IP方法
Dec 23 Python
python实现大转盘抽奖效果
Jan 22 Python
Python新手如何理解循环加载模块
May 29 Python
Tensorflow tensor 数学运算和逻辑运算方式
Jun 30 Python
Cpython解释器中的GIL全局解释器锁
Nov 09 Python
python实现计算器简易版
Dec 17 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
完美解决dedecms中的[html][/html]和[code][/code]问题
2007/03/20 PHP
php下通过POST还是GET来传值
2008/06/05 PHP
php HandlerSocket的使用
2011/05/02 PHP
php实现Session存储到Redis
2015/11/11 PHP
jQuery实现友好的轮播图片特效
2015/01/12 Javascript
js实现仿qq消息的弹出窗效果
2016/01/06 Javascript
微信小程序 五星评价功能的实现
2017/03/09 Javascript
JS中移除非数字最多保留一位小数
2018/05/09 Javascript
NodeJs操作MongoDB教程之分页功能以及常见问题
2019/04/09 NodeJs
vue中获取滚动table的可视页面宽度调整表头与列对齐(每列宽度不都相同)
2019/08/17 Javascript
JavaScript canvas绘制渐变颜色的矩形
2020/02/18 Javascript
Javascript执行流程细节原理解析
2020/05/14 Javascript
node.js如何操作MySQL数据库
2020/10/29 Javascript
[48:48]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Dream TIME
2014/05/21 DOTA
Python实现登录人人网并抓取新鲜事的方法
2015/05/11 Python
Python搜索引擎实现原理和方法
2017/11/27 Python
python使用Apriori算法进行关联性解析
2017/12/21 Python
python+django+sql学生信息管理后台开发
2018/01/11 Python
Python使用pickle模块实现序列化功能示例
2018/07/13 Python
python实现图片彩色转化为素描
2019/01/15 Python
python读取并写入mat文件的方法
2019/07/12 Python
python爬虫 urllib模块发起post请求过程解析
2019/08/20 Python
python+opencv边缘提取与各函数参数解析
2020/03/09 Python
html5+css3实现一款注册表单实例
2013/04/17 HTML / CSS
印尼在线精品店:Berrybenka.com
2016/10/22 全球购物
迪卡侬印度官网:购买所有体育用品
2017/06/24 全球购物
Goodee官方商店:迷你投影仪
2021/03/15 全球购物
自动化专业个人求职信范文
2013/11/29 职场文书
后进基层党组织整改方案
2014/10/25 职场文书
2015年班主任个人工作总结
2015/03/31 职场文书
2015年前台接待工作总结
2015/05/04 职场文书
实习单位意见
2015/06/04 职场文书
2015团员个人年度总结
2015/11/24 职场文书
「SHOW BY ROCK!!」“雫シークレットマインド”组合单曲MV公开
2022/03/21 日漫
Nginx反向代理、重定向
2022/04/13 Servers
Python 统计序列中元素的出现频度
2022/04/26 Python