Python matplotlib生成圖片背景透明的示例代碼
使用matplotlib生成圖片,想要背景透明,而且圖例部分也顯示透明效果,找到了大概的設(shè)置方法,特此記錄。
# 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
# 設(shè)置中文字體
mpl.rcParams['font.sans-serif'] = ['SimHei']
def autolabel(rects):
# attach some text labels
for rect in rects:
height = rect.get_height()
# 設(shè)置標(biāo)注文字及位置
ax.text(rect.get_x() + rect.get_width() / 2, 0.03 + height, '%.4f' % height, ha='center', va='bottom')
# 數(shù)據(jù)
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('數(shù)值')
ax.yaxis.grid(True)
ax.set_xticks(ind + width * 2.5)
ax.set_xticklabels(('P', 'R', 'F'))
# 設(shè)置圖例
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') # 設(shè)置圖例legend背景透明
# 給每個(gè)數(shù)據(jù)矩形標(biāo)注數(shù)值
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' 圖片邊界空白緊致, 背景透明
效
效果可能在網(wǎng)頁(yè)上看不出來(lái),但還是把圖片貼上來(lái)吧。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python使用openpyxl庫(kù)讀取Excel文件數(shù)據(jù)
openpyxl是一個(gè)功能強(qiáng)大的庫(kù),可以輕松地實(shí)現(xiàn)Excel文件的讀寫操作,本文將介紹如何使用openpyxl庫(kù)讀取Excel文件中的數(shù)據(jù),感興趣的小伙伴可以了解下2023-11-11
讓python json encode datetime類型
python2.6+ 自帶的json模塊,不支持datetime的json encode,每次都需要手動(dòng)轉(zhuǎn)為字符串,很累人,我們可以自己封裝一個(gè)簡(jiǎn)單的方法處理此問(wèn)題。2010-12-12
Python數(shù)據(jù)結(jié)構(gòu)之棧、隊(duì)列的實(shí)現(xiàn)代碼分享
這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)之棧、隊(duì)列的實(shí)現(xiàn)代碼分享,具有一定參考價(jià)值,需要的朋友可以了解下。2017-12-12
Python實(shí)現(xiàn)提取PDF簡(jiǎn)歷信息并存入Excel
作為人力資源部的小伙伴,常常需要把他人投遞的PDF簡(jiǎn)歷資料里的關(guān)鍵信息數(shù)據(jù),提取到excel表中匯總,這個(gè)時(shí)候用Python實(shí)現(xiàn)最合適, 快來(lái)學(xué)習(xí)一下如何實(shí)現(xiàn)吧2022-04-04
python實(shí)現(xiàn)簡(jiǎn)單坦克大戰(zhàn)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單坦克大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03
Python報(bào)錯(cuò)no?module?named?torch的幾種原因及解決方案
這篇文章主要給大家介紹了關(guān)于Python報(bào)錯(cuò)no?module?named?torch的幾種原因及解決方案,這是小白時(shí)常犯的錯(cuò),這個(gè)報(bào)錯(cuò)一般說(shuō)明在你電腦當(dāng)前環(huán)境下沒(méi)有安裝torch這個(gè)模塊,但也有其他情況,需要的朋友可以參考下2023-10-10
Python中的XML庫(kù)4Suite Server的介紹
這篇文章主要介紹了Python中的XML庫(kù)4Suite Server,來(lái)自于IBM官方網(wǎng)站,需要的朋友可以參考下2015-04-04

