我一直在尝试保存用matplotlib绘制的图,但是我遇到了一些问题:不仅遇到了常见的白边距问题(我在网上找到了一些解决方案),但似乎我的斧头当我保存图像时,标签消失了,尽管当我要求Python show()
结果时,标签看起来也很好。这是MWE,是我用show()
得到的结果的打印屏幕(这是我想要的结果)以及将图形保存到.png时得到的结果(我相信白色边距的确是稳定,因为当我测试以相同方式生成的.svg文件时它们并不透明)。
from pylab import *
import numpy as np
L=5.05
dx=0.01
def func(x,v):
return np.cos(2*np.pi*v*x)*np.exp(-np.pi*x**2)
def main():
fig, ax = plt.subplots(1, 1,figsize = (12,8))
#fig.subplots_adjust(hspace=0)
ax.set_facecolor((0.118, 0.118, 0.118))
fig.patch.set_facecolor((0.118, 0.118, 0.118))
ax.grid(linewidth='0.25')
ax.spines['bottom'].set_color('white')
ax.spines['top'].set_color('white')
ax.spines['right'].set_color('white')
ax.spines['left'].set_color('white')
ax.tick_params(axis='x', colors='white')
ax.tick_params(axis='y', colors='white')
ax.annotate(r'$\nu=2$', xy=(5.1, -0.9), color='white')
(c2,) = ax.plot(np.arange(-L, L, dx), func(np.arange(-L, L, dx),2), color=(0.949,0.506,0.396), linewidth = 1.8)
ax.set_xlabel(r"Tempo $t$", color='white')
show()
return
Printscreen of the desired result (obtained with show()
)
Result obtained when saving figure through GUI
对此有什么想法吗?