前言

最近工作中遇到一个需求,在使用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能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

python 做界面时如何使图片保持透明背景_Python利用matplotlib生成图片背景及图例透明的效果...相关推荐

  1. python 做界面时如何使图片保持透明背景_Python matplotlib生成图片背景透明的示例代码...

    使用matplotlib生成图片,想要背景透明,而且图例部分也显示透明效果,找到了大概的设置方法,特此记录. # coding=utf-8 # matplotlib背景透明示例图 # python 3 ...

  2. python 做界面时如何使图片保持透明背景_Python matplotlib生成图片背景透明

    使用matplotlib生成图片,想要背景透明,而且图例部分也显示透明效果,找到了大概的设置方法,特此记录. # coding=utf-8 # matplotlib背景透明示例图 # python 3 ...

  3. python 三维图 背景_Python利用matplotlib生成图片背景及图例透明的效果

    前言 最近工作中遇到一个需求,在使用matplotlib生成图片,想要背景透明,而且图例部分也显示透明效果,通过查找相关资料找到了大概的设置方法,特此记录,方便自己或者有需要的朋友们参考学习. 示例代 ...

  4. python绘制散点图、如何选两列作为横坐标_Python利用matplotlib绘制散点图的新手教程...

    前言 上篇文章介绍了使用matplotlib绘制折线图,参考:https://www.jb51.net/article/198991.htm,本篇文章继续介绍使用matplotlib绘制散点图. 一. ...

  5. Pyqt设计界面时无法显示图片问题

    ** Pyqt设计界面时无法显示图片问题 个人学习中遇到的问题,比较有效的解决方法^ ^ ** 设计好的pyqt界面加入了图片,但是通过pyinstaller 生成exe文件,却不显示出来,主要问题是 ...

  6. 做网页时如何使格式不随浏览器大小改变而是出现滚动条

    Q:做网页时如何使格式不随浏览器大小改变而是出现滚动条? A:网页中的代码指定宽度长度的地方都改成像素,而不是百分比,举例如下: <table name="xxx" widt ...

  7. 用python将图片写入ppt_用python做ppt服务用于导入图片

    项目需要做WINFORM程序与powerpoint交互,把winform生成的图片自动拷贝到ppt中.目前使用python做了一个简单的服务解决.由于要求是32位程序,所以下面全都是32位的版本. 第 ...

  8. python 美化ppt_用python做ppt服务用于导入图片

    项目需要做WINFORM程序与powerpoint交互,把winform生成的图片自动拷贝到ppt中.目前使用python做了一个简单的服务解决.由于要求是32位程序,所以下面全都是32位的版本. 第 ...

  9. 如何用python做界面_Python+AutoIt实现界面工具开发

    原标题:Python+AutoIt实现界面工具开发 前言 不同于Linux服务器上的命令行操作,在windows系统上用户的使用习惯还是倾向于使用有界面的工具.如果工具是命令行交互操作的方式,可能是有 ...

  10. html怎么把图片当作导航栏,css利用一张背景图制作导航菜单实现思路及代码

    今天介绍的这款简单非常简单,利用一张背景图片来实现菜单的悬停状态.我们看下面的图片: 仅这一张图片,我们实现一个横行CSS菜单.并设置它们的悬停效果.我们该如何做呢?看下面的图片: 这是一个示意图.最 ...

最新文章

  1. 涉密文件检查工具_肇庆高要销毁资料文件公司粉碎销毁文件资料公司欢迎您
  2. session_unset()和session_destroy()的区别
  3. 坐标系旋转变换公式图解
  4. 1.Linux下libevent和memcached安装
  5. 网站的服务器区域可以造假吗,如何伪造DNS服务器?
  6. 机器学习第九篇:详解Adaboost算法
  7. 如何在Firefox 3中重新启用about:config警告消息
  8. WMI 使用教程_.NET 入门教程
  9. 谷歌服务器——为什么选择Jetty?
  10. 人工智能人才缺口巨大,是否要从大学生抓起?
  11. jsoup爬虫简书首页数据做个小Demo
  12. 软件测试为什么需要学习Linux的知识?Linux学到什么程度?-log5
  13. mysql自动更新时间的触发器
  14. ppt里quicktime不可用_PPT插入音乐、视频的全部疑难问题,一站式帮你解决!
  15. Node连接MySQL数据库进行基本的增删改查操作(一看就会)
  16. 覆盖索引与联合索引_MySQL:你知道什么是覆盖索引吗?
  17. active mq topic消费后删除_天天在用消息队列,却不知道为啥要用 MQ ,这就尴尬了...
  18. 鸟哥的 linux 的私房菜 基础学习篇,鸟哥的 Linux 私房菜 -- 基础学习篇
  19. 读取FBX文件踩坑清单
  20. 【PDF合并】滴滴出行电子发票及行程报销单【一页打印】

热门文章

  1. 自动化测试介入的时机
  2. 剑指offer 66题 -- 丑数
  3. RPi 2B Raspbian system install
  4. Oracle10g expdp impdp
  5. GPO备份还原复制及导入
  6. 使用WUCDCreator将SCSI、RAID、SATA、SAS驱动程序集成到光盘中
  7. 项目管理九要与八不要
  8. 【Linux】目录中 / 和 ~ 的区别
  9. mysql language sql immutable_sql - PostgreSQL是否支持“不区分重音”排序规则?
  10. python小游戏,植物大战僵尸,免费源代码分享,少儿编程体验项目,项目注释详细,可更改游戏参数,关注私聊“关注即送植物大战僵尸源代码”即可免费获得