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

前言

最近工作中遇到一个需求,在使用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'

图片边界空白紧致, 背景透明

效果可能在网页上看不出来,但还是把图片贴上来吧。

201742793831790.jpg?20173279399

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用python能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

本文标题: Python利用matplotlib生成图片背景及图例透明的效果

本文地址: http://www.cppcns.com/jiaoben/python/188985.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值