1

所以,我一直在 Julia 中使用 Gadfly 并遇到了这个问题。

当与 Geom.smooth 结合使用时, Geom.ribbon不接受Int向量作为 ymin 和 ymax 的输入。

我想知道这是否是一个错误,是有意的,还是我做错了什么,为什么?

In [1]: 
x=[-10:10]
y=[i^2 for i in -10:10]
ymin = y-10
ymax = y+10;

In [2]: 
plot(x=x, y=y, ymin=ymin, ymax=ymax, Geom.smooth, Geom.ribbon)

Out[2]: 
`minvalmaxval` has no method matching minvalmaxval(::Int64, ::Float64, ::Int64, ::Nothing, ::Nothing)

 in apply_statistic_typed at C:\Users\epintos\.julia\v0.3\Gadfly\src\statistics.jl:709
 in apply_statistic at C:\Users\epintos\.julia\v0.3\Gadfly\src\statistics.jl:551
 in apply_statistics at C:\Users\epintos\.julia\v0.3\Gadfly\src\statistics.jl:37
 in render at C:\Users\epintos\.julia\v0.3\Gadfly\src\Gadfly.jl:717
 in writemime at C:\Users\epintos\.julia\v0.3\Gadfly\src\Gadfly.jl:884
 in sprint at iostream.jl:229
 in display_dict at C:\Users\epintos\.julia\v0.3\IJulia\src\execute_request.jl:31

In [3]:
ymin = float64(ymin)
ymax = float64(ymax);

In [4]:    
plot(x=x, y=y, ymin=ymin, ymax=ymax, Geom.smooth, Geom.ribbon)

奇怪的是

plot(x=x, y=y, ymin=ymin, ymax=ymax, Geom.line, Geom.ribbon)

即使所有向量都是 Int 也有效

4

1 回答 1

1

它是牛虻中的一个错误,你可以在这里看到这条线

function minvalmaxval{T}(minval::T, maxval::T, val, s, ds)

这需要它minvalmaxval具有相同的类型。相对容易修复,您应该提出问题。在此之前,您的解决方案是明智的。

于 2015-03-10T15:55:20.483 回答