保存图片失败,坐标轴覆盖
在python项目中,想要使用plt来保存图片,但是横坐标过长,保存图片出现了坐标轴覆盖的问题。但是对图片进行最大化设置后,图片就可以正常显示。检查保存下来的图片,依然为非最大化的图片。
解决方案
需要在保存前,设置图片的大小,从而保存的是设置后的图片内容,具体代码如下
plt.gcf().set_size_inches(20, 12) # get current figure
保存图片可能会存在图片模糊问题,需要指定图片的dpi大小
plt.savefig("taskRelaiton.png",dpi=300)
总结其他可能解决方案
有些需要在建立figure的时候,设置图片大小,本地实测无效,可能与多次使用了plt.show有关,暂不确定,具体代码为
plt.figure(num = 1,figsize=(20, 5))
有些可以在show之前,将图片最大化,下面是两种最大化的方法
plt.get_current_fig_manager().window.state('zoomed')
mng = plt.get_current_fig_manager()
mng.full_screen_toggle()
过程中其他各种问题总结
保存矢量图
可能存在需要保存矢量图的情况,需要指定保存的格式为 svg格式,通过visio打开,即可获得矢量图。但是会丢失部分图片信息。
子图
子图需要通过subplot命令来指定,例如(3,1,1)表示整个图形分为3行一列,选取其中第一个,也就是最上面的那一行
保存图片空白
plt.savefig需要在show之前调用,否则可能会出现画板异常,导致保存为空。
添加基准线
因为需要设置可用资源警戒线,需要在bar图中设置基准线用于直观告知警戒水平
plt.axhline(y=self.__resAviable[keyStr],ls="-",c="red")#添加水平基准线
plt.axvline(y=self.__resAviable[keyStr],ls="-",c="red")#添加垂直建准线
copy
如果使用深度copy,需要使用copy库中的copy.deepcopy()函数,否则其实指向地址一致