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系列之教你如何根据图片生成字符画
May 23 Python
Python中自定义函数的教程
Apr 27 Python
Python注释详解
Jun 01 Python
python中defaultdict的用法详解
Jun 07 Python
AI人工智能 Python实现人机对话
Nov 13 Python
Django网络框架之创建虚拟开发环境操作示例
Jun 06 Python
对Pytorch神经网络初始化kaiming分布详解
Aug 18 Python
Python使用type动态创建类操作示例
Feb 29 Python
selenium+python配置chrome浏览器的选项的实现
Mar 18 Python
解析Python 偏函数用法全方位实现
Jun 26 Python
DRF框架API版本管理实现方法解析
Aug 21 Python
详解Python中__new__方法的作用
Mar 31 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
解析htaccess伪静态的规则
2013/06/18 PHP
PHP 正则判断中文UTF-8或GBK的思路及具体实现
2013/11/26 PHP
使用配置类定义Codeigniter全局变量
2014/06/12 PHP
php动态生成版权所有信息的方法
2015/03/24 PHP
php采用session实现防止页面重复刷新
2015/12/24 PHP
php微信公众号开发(3)php实现简单微信文本通讯
2016/12/15 PHP
js cookies实现简单统计访问次数
2009/11/24 Javascript
javascript 使用for循环时该注意的问题-附问题总结
2015/08/19 Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
2015/12/24 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
vue+vue-validator 表单验证功能的实现代码
2017/11/13 Javascript
node.js基础知识小结
2018/02/26 Javascript
jQuery easyui datagird编辑行删除行功能的实现代码
2018/09/20 jQuery
微信小程序仿知乎实现评论留言功能
2018/11/28 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
微信小程序仿抖音短视频切换效果的实例代码
2020/06/24 Javascript
Vue中用JSON实现刷新界面不影响倒计时
2020/10/26 Javascript
记录一次websocket封装的过程
2020/11/23 Javascript
Python记录详细调用堆栈日志的方法
2015/05/05 Python
两个命令把 Vim 打造成 Python IDE的方法
2016/03/20 Python
Python3如何解决字符编码问题详解
2017/04/23 Python
python处理Excel xlrd的简单使用
2017/09/12 Python
Python命名空间的本质和加载顺序
2018/12/17 Python
Python函数中的可变长参数详解
2019/09/12 Python
pycharm设置当前工作目录的操作(working directory)
2020/02/14 Python
pycharm 2018 激活码及破解补丁激活方式
2020/09/21 Python
Html5定位终极解决方案
2020/02/05 HTML / CSS
JAKO-O德国野酷台湾站:德国首屈一指的婴幼童用品品牌
2019/01/14 全球购物
优秀幼教自荐信
2014/02/03 职场文书
党员教师批评与自我批评发言稿
2014/10/15 职场文书
2014年教学管理工作总结
2014/12/02 职场文书
关于学习的决心书
2015/02/05 职场文书
MySQL一些常用高级SQL语句
2021/07/03 MySQL
「SHOW BY ROCK!!」“雫シークレットマインド”组合单曲MV公开
2022/03/21 日漫