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编写的微博应用
Oct 17 Python
Flask框架的学习指南之制作简单blog系统
Nov 20 Python
python list元素为tuple时的排序方法
Apr 18 Python
利用numpy和pandas处理csv文件中的时间方法
Apr 19 Python
python提取图像的名字*.jpg到txt文本的方法
May 10 Python
python爬虫获取百度首页内容教学
Dec 23 Python
Python实现查找数组中任意第k大的数字算法示例
Jan 23 Python
Python函数的默认参数设计示例详解
Dec 01 Python
python每5分钟从kafka中提取数据的例子
Dec 23 Python
Pytorch 卷积中的 Input Shape用法
Jun 29 Python
Python调用JavaScript代码的方法
Oct 27 Python
Python3 如何开启自带http服务
May 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
phpmailer在服务器上不能正常发送邮件的解决办法
2014/07/08 PHP
详解PHP导入导出CSV文件
2014/11/03 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
2017/08/25 PHP
jquery获取子节点和父节点的示例代码
2013/09/10 Javascript
详细解密jsonp跨域请求
2015/04/15 Javascript
jQuery旋转木马式幻灯片轮播特效
2015/12/04 Javascript
JS判断form内所有表单是否为空的简单实例
2016/09/09 Javascript
jQuery实现获取隐藏div高度的方法示例
2017/02/09 Javascript
jQuery 实现双击编辑表格功能
2017/06/19 jQuery
详解vue2.0 transition 多个元素嵌套使用过渡
2017/06/19 Javascript
深入浅析JavaScript中的RegExp对象
2017/09/18 Javascript
vue项目中添加单元测试的方法
2018/07/21 Javascript
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
2019/06/04 Javascript
[02:41]2015国际邀请赛中国区预选赛观战指南
2015/05/20 DOTA
python用字典统计单词或汉字词个数示例
2014/04/22 Python
python实现根据ip地址反向查找主机名称的方法
2015/04/29 Python
解析Python编程中的包结构
2015/10/25 Python
python实现SMTP邮件发送功能
2020/06/16 Python
python3.4用循环往mysql5.7中写数据并输出的实现方法
2017/06/20 Python
python判断数字是否是超级素数幂
2018/09/27 Python
Python制作动态字符图的实例
2019/01/27 Python
在Python中COM口的调用方法
2019/07/03 Python
Python+pyplot绘制带文本标注的柱状图方法
2019/07/08 Python
Python closure闭包解释及其注意点详解
2019/08/28 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
2020/02/20 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的代码
2020/11/30 HTML / CSS
面向对象编程是如何提高软件开发水平的
2014/05/06 面试题
行政前台岗位职责
2013/12/04 职场文书
就业自荐书
2013/12/05 职场文书
如何撰写岗位职责
2014/02/01 职场文书
会计专业求职信范文
2014/03/16 职场文书
员工保密承诺书
2014/05/28 职场文书
2015年学习部工作总结范文
2015/03/31 职场文书
信贷客户经理岗位职责
2015/04/09 职场文书
我的1919观后感
2015/06/03 职场文书
2016年公司新年寄语
2015/08/17 职场文书