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获取CPU、内存和硬盘等windowns系统信息的2个例子
Apr 15 Python
Python实现获取操作系统版本信息方法
Apr 08 Python
Python中取整的几种方法小结
Jan 06 Python
浅谈flask截获所有访问及before/after_request修饰器
Jan 18 Python
更换Django默认的模板引擎为jinja2的实现方法
May 28 Python
对Python3 解析html的几种操作方式小结
Feb 16 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
Aug 05 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
Apr 28 Python
python 监控logcat关键字功能
Sep 04 Python
Django扫码抽奖平台的配置过程详解
Jan 14 Python
flask框架中的cookie和session使用
Jan 31 Python
python flappy bird小游戏分步实现流程
Feb 15 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
图解上海144收音机
2021/03/02 无线电
PHP5 安装方法
2006/10/09 PHP
php循环输出数据库内容的代码
2008/05/24 PHP
Linux下实现PHP多进程的方法分享
2012/08/16 PHP
PHP实现正则表达式分组捕获操作示例
2018/02/03 PHP
Laravel实现搜索的时候分页并携带参数
2019/10/15 PHP
避免 showModalDialog 弹出新窗体的原因分析
2010/05/31 Javascript
jquery操作checkbox实现全选和取消全选
2014/05/02 Javascript
Javascript中this关键字的一些小知识
2015/03/15 Javascript
JavaScript动态创建div等元素实例讲解
2016/01/06 Javascript
ECharts仪表盘实例代码(附源码下载)
2016/02/18 Javascript
微信小程序 canvas API详解及实例代码
2016/10/08 Javascript
移动开发之自适应手机屏幕宽度
2016/11/23 Javascript
原生JS发送异步数据请求
2017/06/08 Javascript
使用vue + less 实现简单换肤功能的示例
2018/02/21 Javascript
详解vue中axios的使用与封装
2019/03/20 Javascript
jquery更改元素属性attr()方法操作示例
2020/05/22 jQuery
[01:30]DOTA2上海特锦赛现场采访 Loda倾情献唱
2016/03/25 DOTA
Python运算符重载用法实例分析
2015/06/01 Python
谈谈Python进行验证码识别的一些想法
2016/01/25 Python
python Django批量导入数据
2016/03/25 Python
详解Python爬取并下载《电影天堂》3千多部电影
2019/04/26 Python
python 杀死自身进程的实现方法
2019/07/01 Python
Python Numpy数组扩展repeat和tile使用实例解析
2019/12/09 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
python框架Django实战商城项目之工程搭建过程图文详解
2020/03/09 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
2020/09/25 Python
Kenneth Cole官网:纽约时尚优雅品牌
2016/11/14 全球购物
设计师家具购买和委托在线市场:Viyet
2016/11/16 全球购物
妈妈的账单教学反思
2014/02/06 职场文书
村主任“四风”问题个人整改措施
2014/10/04 职场文书
大学生党员自我批评思想汇报
2014/10/10 职场文书
优秀教师主要事迹材料
2015/11/04 职场文书
pytorch 使用半精度模型部署的操作
2021/05/24 Python
Java8中Stream的一些神操作
2021/11/02 Java/Android
阿里面试Nacos配置中心交互模型是push还是pull原理解析
2022/07/23 Java/Android