Python绘制精美图表之双柱形图代码详解编程语言
2023-06-13 09:20:23 时间
图表是比干巴巴的表格更直观的表达,简洁、有力。工作中经常遇到的场景是,有一些数值需要定时的监控,比如服务器的连接数、活跃用户数、点击某个按 钮的人数,并且通过邮件或者网页展示出来。当我们想关注比数值本身更多的信息(像数值的变化、对比或异常),图表就非常有用了。把数值转化为图片要依赖第 三方库的帮忙,在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)
最终图表显示如下:
小结一下,从上面的代码片段可以了解到:matplotlib是一个自由度非常高的图表库,能够实现从颜色、字体等基础属性到图例、网格等图表属性的定制输出。
来自:http://segmentfault.com/a/1190000004103325
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/8139.html
cjavapython相关文章
- python编程是什么-Python编程
- Python绘制旭日图_python绘制散点图
- Python win32api_python api文档
- Python的theano库符号求导示例代码详解编程语言
- python发送HTTP请求代码详解编程语言
- Python备份sqlserver中的视图、函数、存储过程详解编程语言
- 批量修改图片大小Python代码详解编程语言
- python创建桌面快捷方式的代码详解编程语言
- python获取本机网卡的mac地址详解编程语言
- python xmlrpc实现文件传输的代码详解编程语言
- python根据域名获得ip地址详解编程语言
- 通过python post提交数据的代码演示详解编程语言
- Python爬虫暴漫gif下载详解编程语言
- Python发邮件代码详解编程语言
- 可以指定要生成的密码长度的Python代码详解编程语言
- SSH代理连接器的Python代码详解编程语言
- python获取文件夹大小的代码详解编程语言
- python代码实例大小写转换,首字母大写,去除特殊字符详解编程语言
- Python测试Sqlite代码详解编程语言
- Python学习:6.python内置函数详解编程语言
- Python_day12_作业详解编程语言
- Python杨辉三角算法详解编程语言
- 四款后起编程语言能否成功挑战Python的王者地位