我需要将函数的输出保存到文件中,该文件的名称为传递给该函数的变量。 我尝试过使用stackoverflow用户的函数。
def var_name(**variables):
return [x for x in variables]
我的代码如下,
dist
是包含不同数组的numpy数组。
MTnum=10
import matplotlib.pyplot as plt
import numpy as np
def Plot(dist, sav=False):
MT_dat = np.vsplit(dist,MTnum)
for i,mtdat in enumerate(MT_dat):
plt.figure(i)
for j in range(len(mtdat[0])-1):
plt.plot(MT_dat[i][:,0],MT_dat[i][:,j+1])
plt.xlabel('time')
plt.ylabel('distance')
plt.title('MT_'+str(i+1)+var_name(dist=dist)+'.png')
if sav == True:
plt.savefig('MT_'+str(i+1)+var_name(dist=dist)+'.png')
plt.show()
如果我使用函数Plot(set1)
,文件将以“dist”后缀而不是“set1”保存。请建议一个正确的方法。
答案 0 :(得分:0)
没有正确的方法来做到这一点。 dist
Plot()
参数只是一个名称,将被分配给作为其第一个参数的 value ,它可能根本不是变量 - 例如它可能是文字字符串“foobar”或者返回的函数调用,它被用作调用中的参数。因为你可能知道参数的名称是什么,假设它有一个,只要明确地将其作为dist
参数传递。
答案 1 :(得分:0)
你的函数var_name将返回变量中的dict名称,而不是numpy数组。你的数据集是什么结构? 尝试将函数定义var_name(**变量)更改为var_name(*变量)(单个星号)。然后将函数调用更改为var_name(dist)。