我知道我可以
作為對評論的回應,
plt.get_backend()
給我“MacOSX”,我就在
Python 3.9.4(默認,2021 年 4 月 5 日,01:49:30)[Clang 12.0.0 (clang-1200.0.32.29)] 在達爾文上
uj5u.com熱心網友回復:
您的代碼表現正確,沒有任何問題。我在 colab 上嘗試過,結果如下(注意ax.patch.set_alpha()值):
import matplotlib.pyplot as plt
import numpy as np
fig,ax=plt.subplots()
ax.plot ([1,2,3],[2,1,3])
ax.patch.set_facecolor('white')
ax.patch.set_alpha(1)
plt.savefig('test.png', facecolor=fig.get_facecolor(), edgecolor='none')

import matplotlib.pyplot as plt
import numpy as np
fig,ax=plt.subplots()
ax.plot ([1,2,3],[2,1,3])
ax.patch.set_facecolor('white')
ax.patch.set_alpha(0)
plt.savefig('test.png', facecolor=fig.get_facecolor(), edgecolor='none')

更新:
保存繪圖后,您可以使用 opencv 加載它,然后像這樣更改其透明度:
"""
pip install opencv-python
"""
import cv2
im = cv2.imread('test.png',cv2.IMREAD_UNCHANGED)
im[:,:,3] = im[:,:,3]/2
cv2.imwrite('adjust.png',im)
更新 2: 我想我找到了你想要的:
import matplotlib.pyplot as plt
import numpy as np
import cv2
fig,ax=plt.subplots()
ax.plot ([1,2,3],[2,1,3])
ax.patch.set_facecolor('white')
plt.savefig('original.png', edgecolor='none')
plt.savefig('transparent.png', edgecolor='none',transparent=True)
#Then
im = cv2.imread('original.png',cv2.IMREAD_UNCHANGED)
im[:,:,3] = im[:,:,3]/2 120
cv2.imwrite('semi_transparent.png',im)
這是我得到的結果(在 MS word 上測驗):

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/364277.html
標籤:Python matplotlib 透明度
