1.如果使用了plt.show()
把plt.savefig()放在plt.show()之前运行就行。
因为plt.show()之后会默认打开一个新的空白画板
2.如果没有使用plt.show(),比如在colab中。
在colab中运行plt.plot()之后,就会自动show画出来的图,这个时候直接保存,就是空白图片。
解决方案:
先用myfig = plt.gcf() 获取当前图片,然后用plt.plot()在空白画板上画图,然后调用myfig.savefig()保存图片。
具体见下面的例子
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(1,10,num=100)
print('x=',x[0:5])
y=np.sin(x)
print('y=',y[0:5])
plt.figure() # creat a new figure
myfig = plt.gcf() # Get the current figure. If no current figure exists, a new one is created using figure().
plt.plot(x,y) # plot on current figure. (and create another new figure, which usually happens after plt.show().)
myfig.savefig('./figure/figure.png',dpi=300) #save myfig