自动设置轴标签

时间:2018-05-04 11:55:30

标签: python matplotlib

有没有办法根据变量在代码中的名称自动设置绘图轴的标签。 例如:

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')

2 个答案:

答案 0 :(得分:1)

在您的情况下,x_variabley_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)