有没有办法根据变量在代码中的名称自动设置绘图轴的标签。 例如:
import matplotlib.pyplot as plt
import numpy as np
x_variable=np.linspace(1,5)
y_variable=x_variable**2
plt.plot(x_variable,y_variable)
some_function()
有没有办法将some_function()添加到此代码中,以便此示例的结果等效于:
plt.xlabel('x_variable')
plt.ylabel('y_variable')
答案 0 :(得分:1)
在您的情况下,x_variable
和y_variable
是numpy数组,因为您正在使用它们在matplotlib上绘图。
因此,您可以根据需要使用以下函数来提取变量名称并将其绘制为标签
import matplotlib.pyplot as plt
import numpy as np
def Return_variable_name_as_string(myVar):
return [ k for k,v in globals().iteritems() if np.array_equal(v,myVar)][0]
x_variable=np.linspace(1,5)
y_variable=x_variable**2
plt.plot(x_variable,y_variable)
plt.xlabel(Return_variable_name_as_string(x_variable))
plt.ylabel(Return_variable_name_as_string(y_variable))
您可能需要使用globals
更改locals
,但这取决于您在案例中的使用方式。
答案 1 :(得分:0)
不是真的。但是,您可以使用字典存储值并使用键作为标签。
import matplotlib.pyplot as plt
import numpy as np
data = {}
x = 'x_variable'
y = 'y_variable'
data[x] = np.linspace(1,5)
data[y] = x_variable**2
plt.plot(data[x], data[y])
plt.xlabel(x)
plt.ylabel(y)