Python利用matplotlib生成图片背景及图例透明的效果


Posted in Python onApril 27, 2017

前言

最近工作中遇到一个需求,在使用matplotlib生成图片,想要背景透明,而且图例部分也显示透明效果,通过查找相关资料找到了大概的设置方法,特此记录,方便自己或者有需要的朋友们参考学习。

示例代码

# coding=utf-8 
# matplotlib背景透明示例图 
# python 3.5 
 
import numpy as np 
import matplotlib.pyplot as plt 
from pylab import mpl 
import scipy.stats as stats 
 
# 设置中文字体 
mpl.rcParams['font.sans-serif'] = ['SimHei'] 
 
 
def autolabel(rects): 
 # attach some text labels 
 for rect in rects: 
  height = rect.get_height() 
  # 设置标注文字及位置 
  ax.text(rect.get_x() + rect.get_width() / 2, 0.03 + height, '%.4f' % height, ha='center', va='bottom') 
 
# 数据 
testData = [[0.87, 0.40, 0.56], 
   [0.97, 0.50, 0.33], 
   [0.88, 0.30, 0.44], 
   [0.25, 0.23, 0.17], 
   [0.73, 0.33, 0.45]] 
 
N = 3 
width = 0.5 
ind = np.arange(width, width*6*N, width*6) 
 
fig, ax = plt.subplots() 
rectsTest1 = ax.bar(ind, (testData[0][0], testData[0][1], testData[0][2]), width, color=(0, 0, 1, 1), edgecolor=(0, 0, 1, 1)) 
 
rectsTest2 = ax.bar(ind + width, (testData[1][0], testData[1][1], testData[1][2]), width, color=(1, 0, 0, 1), edgecolor=(1, 0, 0, 1)) 
 
rectsTest3 = ax.bar(ind + 2*width, (testData[2][0], testData[2][1], testData[2][2]), width, color=(0, 1, 0, 1), edgecolor=(0, 1, 0, 1)) 
 
rectsTest4 = ax.bar(ind + 3*width, (testData[3][0], testData[3][1], testData[3][2]), width, color=(1, 0.6471, 0, 1), edgecolor=(1, 0.6471, 0, 1)) 
 
rectsTest5 = ax.bar(ind + 4*width, (testData[4][0], testData[4][1], testData[4][2]), width, color=(0.5804, 0, 0.8275, 1), edgecolor=(0.5804, 0, 0.8275, 1)) 
 
ax.set_xlim(0, 9.5) 
ax.set_ylim(0, 1.4) 
ax.set_ylabel('数值') 
ax.yaxis.grid(True) 
ax.set_xticks(ind + width * 2.5) 
ax.set_xticklabels(('P', 'R', 'F')) 
 
# 设置图例 
legend = ax.legend((rectsTest1, rectsTest2, rectsTest3, rectsTest4, rectsTest5), ('test1', 'test2', 'test3', 'test4', 'test5')) 
frame = legend.get_frame() 
frame.set_alpha(1) 
frame.set_facecolor('none') # 设置图例legend背景透明 
 
# 给每个数据矩形标注数值 
autolabel(rectsTest1) 
autolabel(rectsTest2) 
autolabel(rectsTest3) 
autolabel(rectsTest4) 
autolabel(rectsTest5) 
 
plt.savefig('C:/Users/XX/Desktop/test.png', format='png', bbox_inches='tight', transparent=True, dpi=600) # bbox_inches='tight'

图片边界空白紧致, 背景透明 

效果可能在网页上看不出来,但还是把图片贴上来吧。

Python利用matplotlib生成图片背景及图例透明的效果

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用python能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python解析nginx日志文件
May 11 Python
使用C#配合ArcGIS Engine进行地理信息系统开发
Feb 19 Python
Python计算字符宽度的方法
Jun 14 Python
Python处理文本文件中控制字符的方法
Feb 07 Python
简述:我为什么选择Python而不是Matlab和R语言
Nov 14 Python
Flask Web开发入门之文件上传(八)
Aug 17 Python
python实现图片识别汽车功能
Nov 30 Python
详解pycharm连接不上mysql数据库的解决办法
Jan 10 Python
pycharm设置python文件模板信息过程图解
Mar 10 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
Mar 20 Python
解决keras backend 越跑越慢问题
Jun 18 Python
Python OpenCV快速入门教程
Apr 17 Python
python使用matplotlib绘图时图例显示问题的解决
Apr 27 #Python
Python中生成Epoch的方法
Apr 26 #Python
python 网络编程详解及简单实例
Apr 25 #Python
python 全文检索引擎详解
Apr 25 #Python
window下eclipse安装python插件教程
Apr 24 #Python
Python处理PDF及生成多层PDF实例代码
Apr 24 #Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
Apr 24 #Python
You might like
如何对PHP程序中的常见漏洞进行攻击(下)
2006/10/09 PHP
PHP file_get_contents设置超时处理方法
2013/09/30 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
/etc/php-fpm.d/www.conf 配置注意事项
2017/02/04 PHP
PHP 枚举类型的管理与设计知识点总结
2020/02/13 PHP
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
js快速排序的实现代码
2013/12/08 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
基于jquery实现省市区三级联动效果
2015/12/25 Javascript
原生js的RSA和AES加密解密算法
2016/10/08 Javascript
jQuery Validate插件自定义验证规则的方法
2016/12/27 Javascript
js实现短信发送倒计时功能(正则验证)
2017/02/10 Javascript
JSONP基础知识详解
2017/03/19 Javascript
vue中锚点的三种方法
2018/07/06 Javascript
vue单页面在微信下只能分享落地页的解决方案
2019/04/15 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
[54:18]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第一场 1月22日
2021/03/11 DOTA
python实现忽略大小写对字符串列表排序的方法
2014/09/25 Python
Python使用sorted排序的方法小结
2017/07/28 Python
Python之csv文件从MySQL数据库导入导出的方法
2018/06/21 Python
Django使用rest_framework写出API
2020/05/21 Python
de Bijenkorf比利时官网:荷兰最知名的百货商店
2017/06/29 全球购物
香港莎莎官网Sasa.com:亚洲著名国际化妆品商城
2019/11/10 全球购物
经典c++面试题三
2015/07/08 面试题
大学生的四年学习自我评价
2013/12/13 职场文书
活动总结报告怎么写
2014/07/03 职场文书
2014年招商工作总结
2014/11/22 职场文书
2014年小学图书室工作总结
2014/12/09 职场文书
幼儿教师师德师风自我评价
2015/03/05 职场文书
投标单位介绍信
2015/05/05 职场文书
2016年清明节寄语
2015/12/04 职场文书
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用详解
2021/06/26 MySQL
使用redis实现延迟通知功能(Redis过期键通知)
2021/09/04 Redis
深入解析MySQL索引数据结构
2021/10/16 MySQL