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之Web框架Django项目搭建全过程
May 02 Python
python3 拼接字符串的7种方法
Sep 12 Python
python的pip安装以及使用教程
Sep 18 Python
python 多线程重启方法
Feb 18 Python
python实现批量修改服务器密码的方法
Aug 13 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
Sep 25 Python
python tkinter控件布局项目实例
Nov 04 Python
Python hashlib模块加密过程解析
Nov 05 Python
Python实现把类当做字典来访问
Dec 16 Python
python+selenium 脚本实现每天自动登记的思路详解
Mar 11 Python
Python urlencode和unquote函数使用实例解析
Mar 31 Python
实例讲解Python 迭代器与生成器
Jul 08 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中static关键字原理的学习研究分析
2011/07/18 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
2015/12/20 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
2018/01/29 PHP
PHP lcfirst()函数定义与用法
2019/03/08 PHP
javascript在一段文字中的光标处插入其他文字
2007/08/26 Javascript
JavaScript 拾碎[三] 使用className属性
2010/10/16 Javascript
jquery中ajax调用json数据的使用说明
2011/03/17 Javascript
input 和 textarea 输入框最大文字限制的jquery插件
2011/10/27 Javascript
JS实现匀速运动的代码实例
2013/11/29 Javascript
JavaScript中原型和原型链详解
2015/02/11 Javascript
nodejs中使用多线程编程的方法实例
2015/03/24 NodeJs
PhotoSwipe异步动态加载图片方法
2016/08/25 Javascript
Angular2+国际化方案(ngx-translate)的示例代码
2017/08/23 Javascript
vue 项目地址去掉 #的方法
2018/10/20 Javascript
js类的继承定义与用法分析
2019/06/21 Javascript
layui 对table中的数据进行转义的实例
2019/09/12 Javascript
JavaScript中条件语句的优化技巧总结
2020/12/04 Javascript
python和bash统计CPU利用率的方法
2015/07/10 Python
在Python的Django框架中编写错误提示页面
2015/07/22 Python
Python探索之实现一个简单的HTTP服务器
2017/10/28 Python
Python+OpenCV人脸检测原理及示例详解
2020/10/19 Python
Python+matplotlib实现华丽的文本框演示代码
2018/01/22 Python
Python hashlib常见摘要算法详解
2020/01/13 Python
Python通过文本和图片生成词云图
2020/05/21 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
中粮集团旗下食品网上购物网站:我买网
2016/09/22 全球购物
欧洲顶级体育电子商务网站:SportsShoes.com
2018/03/27 全球购物
linux面试题参考答案(2)
2015/12/06 面试题
音乐表演专业毕业生求职信
2013/10/14 职场文书
第一批党的群众路线教育实践活动工作总结
2014/03/03 职场文书
加入学生会演讲稿
2014/04/24 职场文书
创先争优活动个人总结
2015/03/04 职场文书
2015公司年度工作总结
2015/05/14 职场文书
幼儿园春季开学通知
2015/07/16 职场文书
2019 入党申请书范文
2019/07/10 职场文书
教你怎么用python实现字符串转日期
2021/05/24 Python