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基于pygame实现图片代替鼠标移动效果
Nov 11 Python
python3操作mysql数据库的方法
Jun 23 Python
使用Python实现博客上进行自动翻页
Aug 23 Python
python读取LMDB中图像的方法
Jul 02 Python
python 使用sys.stdin和fileinput读入标准输入的方法
Oct 17 Python
PyCharm 设置SciView工具窗口的方法
Jan 15 Python
Python 循环终止语句的三种方法小结
Jun 24 Python
浅谈Python 函数式编程
Jun 20 Python
用opencv给图片换背景色的示例代码
Jul 08 Python
图解Python中深浅copy(通俗易懂)
Sep 03 Python
python和node.js生成当前时间戳的示例
Sep 29 Python
详解Python中如何将数据存储为json格式的文件
Nov 18 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下几个常用的去空、分组、调试数组函数
2009/02/22 PHP
linux php mysql数据库备份实现代码
2009/03/10 PHP
php切割页面div内容的实现代码分享
2012/07/31 PHP
thinkphp如何获取客户端IP
2015/11/03 PHP
基于jQuery图片平滑连续滚动插件
2009/04/27 Javascript
Javascript 构造函数,公有,私有特权和静态成员定义方法
2009/11/30 Javascript
兼容IE和FF的图片上传前预览js代码
2013/05/28 Javascript
iframe里使用JavaScript控制主页转向的方法
2015/04/03 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
2015/06/08 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
简单理解js的冒泡排序
2016/12/19 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
一次围绕setTimeout的前端面试经验分享
2017/06/15 Javascript
深入理解vue中slot与slot-scope的具体使用
2018/01/26 Javascript
vue 之 .sync 修饰符示例详解
2018/04/21 Javascript
微信小程序解除10个请求并发限制
2018/12/18 Javascript
vue 如何使用递归组件
2020/10/23 Javascript
深入理解Python3中的http.client模块
2017/03/29 Python
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
Python单例模式的两种实现方法
2017/08/14 Python
python基于FTP实现文件传输相关功能代码实例
2019/09/28 Python
详解Python list和numpy array的存储和读取方法
2019/11/06 Python
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
HTML5中实现拖放效果无须借助javascript
2012/12/26 HTML / CSS
夏洛特和乔治婴儿和儿童时装精品店:Charlotte and George
2018/06/06 全球购物
Ruby如何实现动态方法调用
2012/11/18 面试题
合作投资意向书
2014/04/01 职场文书
2014年安全生产大检查方案
2014/05/13 职场文书
建筑学专业自荐书
2014/07/09 职场文书
不尊敬老师检讨书范文
2014/11/19 职场文书
晚会开幕词
2015/01/28 职场文书
2015年汽车销售工作总结
2015/04/07 职场文书
文明礼仪倡议书
2015/04/28 职场文书
2015年班组建设工作总结
2015/05/13 职场文书
解决redis sentinel 频繁主备切换的问题
2021/04/12 Redis