你打电话
show
在保存数字之前。因此,保存的图形是一个新的空图形。因为你处理
显示
不管怎样,在装饰室内,你可以把它放在外面。
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame(data={'foo':list(range(5)), 'bar':list(range(5, 10, 1))})
def save_fig(**param):
def outer(func):
def inner(*args, **kwargs):
artist = func(*args)
if 'filename' in param.keys():
print('filename')
plt.savefig(param['filename'])
if 'show' in param.keys() and param["show"]:
print('show')
plt.show()
else:
return artist
return inner
return outer
@save_fig(**{'filename': 'foo.png', 'show' : True})
def plot_this():
return plt.scatter(df['foo'], df['bar'])
if __name__ == "__main__":
plot_this()