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中用Decorator来简化元编程的教程
Apr 13 Python
以911新闻为例演示Python实现数据可视化的教程
Apr 23 Python
分分钟入门python语言
Mar 20 Python
Django1.9 加载通过ImageField上传的图片方法
May 25 Python
kaggle+mnist实现手写字体识别
Jul 26 Python
python2.7使用plotly绘制本地散点图和折线图
Apr 02 Python
如何通过雪花算法用Python实现一个简单的发号器
Jul 03 Python
基于python3抓取pinpoint应用信息入库
Jan 08 Python
Python如何在循环内使用list.remove()
Jun 01 Python
Python读取图像并显示灰度图的实现
Dec 01 Python
Python办公自动化之Excel(中)
May 24 Python
Python+Matplotlib+LaTeX玩转数学公式
Feb 24 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常用ODBC函数集(详细)
2013/06/24 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
2013/09/30 PHP
PHP中通过fopen()函数访问远程文件示例
2014/11/18 PHP
PHP使用递归方式列出当前目录下所有文件的方法
2015/06/02 PHP
完美利用Yii2微信后台开发的系列总结
2016/07/18 PHP
Ucren Virtual Desktop V2.0
2006/11/07 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
JS验证控制输入中英文字节长度(input、textarea等)具体实例
2013/06/21 Javascript
jquery的map与get方法详解
2013/11/04 Javascript
Jquery遍历checkbox获取选中项value值的方法
2014/02/13 Javascript
javascript中scrollTop详解
2015/04/13 Javascript
js生成随机数的过程解析
2015/11/24 Javascript
js原型链与继承解析(初体验)
2016/05/09 Javascript
自己动手封装一个React Native多级联动
2018/09/19 Javascript
Vue安装浏览器开发工具的步骤详解
2019/05/12 Javascript
JS实现的排列组合算法示例
2019/07/16 Javascript
nuxt 路由、过渡特效、中间件的实现代码
2020/11/06 Javascript
[01:38]【DOTA2亚洲邀请赛】Sumail——梦开始的地方
2017/03/03 DOTA
python中kmeans聚类实现代码
2018/02/23 Python
Python3+selenium实现cookie免密登录的示例代码
2020/03/18 Python
jupyter 使用Pillow包显示图像时inline显示方式
2020/04/24 Python
keras自动编码器实现系列之卷积自动编码器操作
2020/07/03 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
一个入门级python爬虫教程详解
2021/01/27 Python
Web前端绘制0.5像素的几种方法
2017/08/11 HTML / CSS
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
美国知名运动产品零售商:Foot Locker
2016/07/23 全球购物
个人生活学习自我评价范文
2013/11/26 职场文书
资产经营总监岗位职责范文
2013/12/01 职场文书
网络营销策划方案
2014/06/04 职场文书
赔偿协议书范本
2014/09/12 职场文书
2015年青年志愿者工作总结
2015/05/20 职场文书
院系推荐意见
2015/06/05 职场文书
2016大学生形势与政策心得体会
2016/01/12 职场文书
2016天猫双十一广告语
2016/01/28 职场文书
Win11 Dev 预览版25174.1000发布 (附更新修复内容汇总)
2022/08/05 数码科技