Python plt.show和plt.savefig给出不同的结果

Python plt.show和plt.savefig给出不同的结果,python,matplotlib,Python,Matplotlib,这是我的代码,我从plt.savefig和plt.show得到不同的结果 我已经尝试使用bbox_inches='tight',但这使得图片大小变得不完全是700*400 x=np.linspace(1*13,20*13,20) ys=[[9.429781134779862, 5.29464711177, 3.607607723166614, 2.899937651340496, 2.191804841696895, 1.9843671555485882, 1.7248100121771586,

这是我的代码,我从plt.savefig和plt.show得到不同的结果

我已经尝试使用bbox_inches='tight',但这使得图片大小变得不完全是700*400

x=np.linspace(1*13,20*13,20)
ys=[[9.429781134779862, 5.29464711177, 3.607607723166614, 2.899937651340496, 2.191804841696895, 1.9843671555485882, 1.7248100121771586, 1.3670895074513212, 1.3698780260605596, 1.2462146230823874, 1.1289892836337199, 1.032841253332204, 0.9543441746831577, 0.7484693801176594, 0.8376893177858197, 0.7849478402160176, 0.7434280956345902, 0.7000987139186625, 0.665212069607791, 0.6300403225806451], [126.98106331402796, 53.50512044002611, 30.074826167504753, 24.227858160427186, 16.471886607532593, 14.13705307473836, 11.449887848348526, 8.72965989245059, 8.840716805318575, 7.263008047412916, 6.293385023002322, 5.634501177610746, 4.6241919224615495, 3.9431399223201433, 3.937845053672828, 3.578854694920532, 3.3610282057487026, 2.947140095251568, 2.629807287721956, 2.5260498894853174]]
plt.figure(figsize=(7,4))
plt.plot(x, ys[0], marker='o',markersize=10,  label='original method')
plt.plot(x, ys[1], marker='s',markersize=10,   label='our method')

plt.xlabel('Number of trajectories(×1000)',fontsize=20)
plt.ylabel("QPS",fontsize=20)  
plt.yscale('log')
plt.xticks(fontsize=15)
plt.yticks(fontsize=15)
plt.legend(fontsize=20)
plt.savefig("../res/dense.png",dpi=plt.gcf().dpi)
plt.show()
这是我从savefig()和show()获得的两张图片

您可以使用:

plt.show()

plt.savefig(“../res/dense.png”,dpi=plt.gcf().dpi)

这只是惯例问题。当我们调用
plt.savefig
所有变量点的引用,直到
plt.savefig
之后的任何语句都对应于新的绘图

你可以接受答案。如果有帮助。

您可以使用:

plt.show()

plt.savefig(“../res/dense.png”,dpi=plt.gcf().dpi)

这只是惯例问题。当我们调用
plt.savefig
所有变量点的引用,直到
plt.savefig
之后的任何语句都对应于新的绘图


你可以接受答案。如果有帮助。

你能在
plt.savefig(../res/dense.png),dpi=plt.gcf().dpi)之前使用
plt.show()
并检查一下吗?@Hayat ooo,这就解决了问题!但是它背后的原因是什么?你能在
plt.savefig(../res/dense.png),dpi=plt.gcf().dpi)之前使用
plt.show()
并检查一下吗?@Hayat ooo,这就解决了问题!但背后的原因是什么?