python - plt.show 和 plt.savefig 给出不同的结果
问题描述
这是我的代码,我从 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
之后的任何语句都对应于新图。
你可以接受答案。如果有帮助。
推荐阅读
- php - PHP:显示从数据库中检索到的数据使用 DB::query (Silverstripe CMS)
- scala - 为什么编译器不推断依赖类型?
- wordpress - 有没有办法将用户元数据复制到其他表?
- django - 如何使用 pymongo 访问用 mongodb 编写的 system.views?
- java - 使用 Apache Camel 和 ActiveMQ 时如何处理系统崩溃
- mule - 如何在 ESB 中使用 db 连接器检索数据
- java - 优化服务器端实验跟踪事件
- karate - 如何通过空手道中的示例表在路径中传递响应变量
- mysql - 搜索 URL 模式并使用 REGEX 在 MySql 上替换它
- python - 如何创建一个带有驱动程序的 python selenium 应用程序?