我试图绘制一个回归线,该回归线由p /(1-p)= -41.828 + 0.9864x建模,其中p是事件的概率,取决于x。我只需要用朱莉娅绘制这个图,这样一般的趋势就很明显了。我已经将模型重新排列为p = 1 /(exp(41.828-0.9864x)+1),但是,每当我使用julia绘制它时,它都会返回错误。我在下面附上了我的代码,以及随后的错误。我已经尝试了各种各样的事情,我可以想到绕过错误,但我无法...任何帮助将不胜感激!对于我第一次使用本网站时出现的任何格式错误表示道歉,但我试图按照要求做。
using PyPlot , Distributions , StatsBase, DataFrames
xlin = float(linspace(-50.0,50,1000)); y=1.0/float(exp(41.828-0.9864*
(float(xlin)))+1.0)
PyPlot.plot(xlin, y, color="red", linewidth=2.0, linestyle="--")
title("Regression Line Plot");
PyPlot.grid(-25:7:125);
ylabel("Y");
xlabel("X");
这将返回错误:
MethodError: no method matching /(::Float64, ::Array{Float64,1})
Closest candidates are:
/(::Float64, ::Float64) at float.jl:246
/(::PyCall.PyObject, ::Any) at
/home/juser/.julia/v0.5/PyCall/src/PyCall.jl:702
/(::Real, ::Complex{T<:Real}) at complex.jl:182
...
答案 0 :(得分:2)
它与plot
命令无关。错误在这一行:
y=1.0/float(exp(41.828-0.9864*(float(xlin)))+1.0)
您需要./
而不是/
,因为您正在尝试进行元素操作。此外,没有理由一直致电float
。
所以只是
y = 1.0 ./ exp(41.828 .- 0.9864 .* xlin) .+ 1.0
应该这样做。对于其中一个操作数是标量的那些操作,你不需要所有的点,但你做的是初始除法,它使得恕我直言更清楚。