Julia中的PyPlot错误:类型PyObject没有字段set_yscale

时间:2015-02-17 02:29:23

标签: matplotlib julia

我在Julia编程但使用PyPloy库。我想用log y轴绘制直方图。但是,当我使用以下代码时:

using PyPlot
List = [rand() for i = 1:100]
plt.hist(List)
plt.gca().set_yscale("log")

我收到以下错误:

type PyObject has no field set_yscale
while loading In[45], in expression starting on line 3

 in getindex at /home/rm/.julia/v0.4/PyCall/src/PyCall.jl:642
 in pysequence_query at /home/rm/.julia/v0.4/PyCall/src/conversions.jl:743
 in pytype_query at /home/rm/.julia/v0.4/PyCall/src/conversions.jl:759
 in convert at /home/rm/.julia/v0.4/PyCall/src/conversions.jl:808
 in pycall at /home/rm/.julia/v0.4/PyCall/src/PyCall.jl:812
 in fn at /home/rm/.julia/v0.4/PyCall/src/conversions.jl:181
 in close_queued_figs at /home/rm/.julia/v0.4/PyPlot/src/PyPlot.jl:295

这是路径错误吗?如果是这样,是否有更简单的方法来使用不同的命令进行对数日志?

提前致谢。

1 个答案:

答案 0 :(得分:2)

我觉得这应该在文档中更突出地解释,但是如果你向下滚动到Readme for PyCall(PyPlot使用的)的底部,它会说:

  

重要:与Python最大的区别在于,使用o [:attribute]而不是o.attribute访问对象属性/成员,因此Python中的o.method(...)是替换为o [:method](...)

因此,正如@jverzani所提到的,在从PyPlot调用任何返回对象的模块级函数之后,该对象是PyObject,并且必须使用带符号的括号表示法调用所有属性和方法。 / p>

相关问题