我想使用setattr创建图:
import numpy as np
import matplotlib.pyplot as plt
x = np.random.rand(10)
y = np.random.rand(10)
# I want this:
# plt.scatter(x, y)
setattr(plt, "scatter", [HOW TO PASS X AND Y])
由于我要传递的值不是单一的,我该怎么办?基本上,这应该是结果:plt.scatter(x, y)
答案 0 :(得分:2)
我认为您正在寻找的是getattr
。在这种情况下,它将返回Callable
,因此您可以将其视为函数,如下所示:
getattr(plt, 'scatter')(x, y)
与此相同:
plt.scatter(x, y)
以这种方式使用setattr
会更类似于plt.scatter = (x, y)
,我认为这不是您要执行的操作。
答案 1 :(得分:1)
您不是在设置属性,而是调用一个属性。
getattr(plt, some_func)(x, y)
将致电
plt.some_func(x, y)
因此,您要运行
getattr(plt, 'scatter')(x, y)