gpt4 book ai didi

python - Matplotlib - savefig 在以透明度保存时忽略面部颜色

转载 作者:行者123 更新时间:2023-12-01 08:42:57 25 4
gpt4 key购买 nike

我惊讶地发现,当我将 savefigtransparent=True 一起使用时,这删除了我可能设置的facecolor

如何才能不丢失我手动设置的任何背景颜色(包括白色)?

比较

图形用户界面

enter image description here

使用transparent=False

plt.savefig('temp.pdf', format='pdf', transparent=False, bbox_inches='tight')

enter image description here

使用transparent=True

plt.savefig('temp.pdf', format='pdf', transparent=True, bbox_inches='tight')

enter image description here

MWE

import matplotlib as mpl

rc_fonts = {
"text.usetex": True,
'text.latex.preview': True,
"font.size": 50,
'mathtext.default': 'regular',
'axes.titlesize': 55,
"axes.labelsize": 55,
"legend.fontsize": 50,
"xtick.labelsize": 50,
"ytick.labelsize": 50,
'figure.titlesize': 55,
'figure.figsize': (10, 6.5), # 15, 9.3
'text.latex.preamble': [
r"""\usepackage{lmodern,amsmath,amssymb,bm,physics,mathtools,nicefrac,letltxmacro,fixcmex}
"""],
"font.family": "serif",
"font.serif": "computer modern roman",
}
mpl.rcParams.update(rc_fonts)
import matplotlib.pylab as plt
from mpl_toolkits.axes_grid1.inset_locator import inset_axes, InsetPosition, mark_inset
from numpy import linspace, sin


x = linspace(0, 1, 100)
plt.clf()
ax1 = plt.gca()
ax2 = plt.axes([0, 0, 1, 1], label=str(2))
ip = InsetPosition(ax1, [0.08, 0.63, 0.45, 0.3])
ax2.set_axes_locator(ip)
ax1.plot(x, x)
ax1.plot(x, x + 0.3)
ax1.set_xlim(0, 1)
ax1.set_ylim(0, 1)
plt.setp(ax2.get_xticklabels(), backgroundcolor="white")
ax2.set_facecolor('grey')
ax1.set_yticks([])
ax1.set_xticks([])
ax2.set_yticks([])
ax1.text(0.3, 0.3, '$1$', transform=ax1.transAxes, horizontalalignment='center', verticalalignment='center', color='black', backgroundcolor='white')

期望的输出

我希望任何背景颜色默认为None(或类似),这样如果未指定,则它将是透明的,如果指定了,则它将是受尊重且不透明。因此我想要以下输出(使用蓝色背景以增加清晰度):

我想要什么:

enter image description here

目前,如果我使用 facecolor=(1,1,1,0) 它会正确删除边缘周围的所有颜色,但主要绘图区域仍然是白色。

最佳答案

看起来您可以通过以下方式实现所需的输出

ax1.set_facecolor((1,1,1,0))
ax2.set_facecolor("grey")
fig.savefig(__file__+".pdf", facecolor=(1,1,1,0))

关于python - Matplotlib - savefig 在以透明度保存时忽略面部颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53435979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com