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实现简单温度转换的方法
Mar 13 Python
Python赋值语句后逗号的作用分析
Jun 08 Python
python实现的希尔排序算法实例
Jul 01 Python
Python cx_freeze打包工具处理问题思路及解决办法
Feb 13 Python
Python爬虫工程师面试问题总结
Mar 22 Python
在Pandas中给多层索引降级的方法
Nov 16 Python
朴素贝叶斯Python实例及解析
Nov 19 Python
Python从数据库读取大量数据批量写入文件的方法
Dec 10 Python
Python  Django 母版和继承解析
Aug 09 Python
Python 调用 Windows API COM 新法
Aug 22 Python
django 框架实现的用户注册、登录、退出功能示例
Nov 28 Python
python使用pandas抽样训练数据中某个类别实例
Feb 28 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
codeigniter集成ucenter1.6双向通信的解决办法
2014/06/12 PHP
php实现网页缓存的工具类分享
2015/07/14 PHP
php实现文件管理与基础功能操作
2017/03/21 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
JavaScript 组件之旅(三):用 Ant 构建组件
2009/10/28 Javascript
jquery load事件(callback/data)使用方法及注意事项
2013/02/06 Javascript
jQuery防止click双击多次提交及传递动态函数或多参数
2014/04/02 Javascript
jQuery移除元素自动解绑事件实现思路及代码
2014/05/31 Javascript
node.js中的fs.read方法使用说明
2014/12/17 Javascript
用JavaScript实现页面重定向功能的教程
2015/06/04 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
2016/09/29 Javascript
微信小程序入门教程
2016/11/18 Javascript
深入理解javascript函数参数与闭包
2016/12/12 Javascript
JS作用域深度解析
2016/12/29 Javascript
Bootstrap表单使用方法详解
2017/02/17 Javascript
基于javascript的异步编程实例详解
2017/04/10 Javascript
JS实现元素上下左右移动效果
2017/10/18 Javascript
微信小程序实现鼠标拖动效果示例
2017/12/01 Javascript
解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
2019/06/17 Javascript
layui radio单选限制下一个radio单选的实例
2019/09/03 Javascript
js实现GIF动图分解成多帧图片上传
2019/10/24 Javascript
Python中endswith()函数的基本使用
2015/04/07 Python
python实现RSA加密(解密)算法
2016/02/17 Python
Python中生成器和迭代器的区别详解
2018/02/10 Python
Python Web程序部署到Ubuntu服务器上的方法
2018/02/22 Python
Python+Django搭建自己的blog网站
2018/03/13 Python
python3转换code128条形码的方法
2019/04/17 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
tensorflow模型继续训练 fineturn实例
2020/01/21 Python
自定义html标记替换html5新增元素
2008/10/17 HTML / CSS
2014年会计人员工作总结
2014/12/10 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书
CSS实现五种常用的2D转换
2021/12/06 HTML / CSS
Python中的 Set 与 dict
2022/03/13 Python
一条 SQL 语句执行过程
2022/03/17 MySQL
引用计数法和root搜索算法以及JVM中判定对象需要回收的方法
2022/04/19 Java/Android