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学习笔记 下载
Feb 10 Python
python访问纯真IP数据库的代码
May 19 Python
Python设计模式之代理模式实例
Apr 26 Python
Python常用列表数据结构小结
Aug 06 Python
Python列表(list)、字典(dict)、字符串(string)基本操作小结
Nov 28 Python
深入解析Python中的urllib2模块
Nov 13 Python
解决pandas中读取中文名称的csv文件报错的问题
Jul 04 Python
HTML的form表单和django的form表单
Jul 25 Python
python 将视频 通过视频帧转换成时间实例
Apr 23 Python
基于python实现地址和经纬度转换
May 19 Python
python3.9实现pyinstaller打包python文件成exe
Dec 13 Python
关于的python五子棋的算法
May 02 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
让你的网站首页自动选择语言转跳
2006/12/06 PHP
PHP 巧用数组降低程序的时间复杂度
2010/01/01 PHP
PHP执行zip与rar解压缩方法实现代码
2010/12/05 PHP
Could not load type System.ServiceModel.Activation.HttpModule解决办法
2012/12/29 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
2015/04/08 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
2017/03/04 PHP
jquery easyui的tabs使用时的问题
2010/03/23 Javascript
javascript 另一种图片滚动切换效果思路
2012/04/20 Javascript
Yii-自定义删除确认弹框(zyd)jquery实现代码
2013/03/04 Javascript
js字符串截取函数substr substring slice使用对比
2013/11/27 Javascript
javascript实现单击和双击并存的方法
2014/12/13 Javascript
jQuery插件slicebox实现3D动画图片轮播切换特效
2015/04/12 Javascript
JS判断是否长按某一键的方法
2016/03/02 Javascript
js实现不重复导入的方法
2016/03/02 Javascript
PHP获取当前页面完整URL的方法
2016/12/02 Javascript
jQuery解析返回的xml和json方法详解
2017/01/05 Javascript
详解axios在node.js中的post使用
2017/04/27 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
详解vue-cli脚手架build目录中的dev-server.js配置文件
2017/11/24 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
vue-loader中引入模板预处理器的实现
2019/09/04 Javascript
WebPack工具运行原理及入门教程
2020/12/02 Javascript
使用Python的urllib和urllib2模块制作爬虫的实例教程
2016/01/20 Python
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
python中Pycharm 输出中文或打印中文乱码现象的解决办法
2017/06/16 Python
深入分析python数据挖掘 Json结构分析
2018/04/21 Python
python如何删除文件、目录
2020/06/23 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
《珍珠泉》教学反思
2014/02/20 职场文书
民主评议党员总结
2014/10/20 职场文书
金融专业银行实习证明模板
2014/11/28 职场文书
2019年年中工作总结讲话稿模板
2019/03/25 职场文书
浅谈CSS不规则边框的生成方案
2021/05/25 HTML / CSS
python pygame入门教程
2021/06/01 Python
关于ObjectUtils.isEmpty() 和 null 的区别
2022/02/28 Java/Android