我有一个名为mycode.jl的文件,下面的代码摘自这里。
using MultivariateStats, RDatasets, Plots
# load iris dataset
println("loading iris dataset:")
iris = dataset("datasets", "iris")
println(iris)
println("loaded; splitting dataset: ")
# split half to training set
Xtr = Matrix(iris[1:2:end,1:4])'
Xtr_labels = Vector(iris[1:2:end,5])
# split other half to testing set
Xte = Matrix(iris[2:2:end,1:4])'
Xte_labels = Vector(iris[2:2:end,5])
print("split; Performing PCA: ")
# Suppose Xtr and Xte are training and testing data matrix, with each observation in a column. We train a PCA model, allowing up to 3 dimensions:
M = fit(PCA, Xtr; maxoutdim=3)
println(M)
# Then, apply PCA model to the testing set
Yte = predict(M, Xte)
println(Yte)
# And, reconstruct testing observations (approximately) to the original space
Xr = reconstruct(M, Yte)
println(Xr)
# Now, we group results by testing set labels for color coding and visualize first 3 principal components in 3D plot
println("Plotting fn:")
setosa = Yte[:,Xte_labels.=="setosa"]
versicolor = Yte[:,Xte_labels.=="versicolor"]
virginica = Yte[:,Xte_labels.=="virginica"]
p = scatter(setosa[1,:],setosa[2,:],setosa[3,:],marker=:circle,linewidth=0)
scatter!(versicolor[1,:],versicolor[2,:],versicolor[3,:],marker=:circle,linewidth=0)
scatter!(virginica[1,:],virginica[2,:],virginica[3,:],marker=:circle,linewidth=0)
plot!(p,xlabel="PC1",ylabel="PC2",zlabel="PC3")
println("Reached end of program.")我在Linux终端上使用命令运行上面的代码:julia mycode.jl
代码运行正常,并达到尾声,但情节没有出现。
问题在哪里,如何解决。
发布于 2022-09-04 12:05:29
正如地块文档的输出部分所说:
只有当返回时(分号将抑制返回),或者显式地用display(plt)、gui()显示,或者将show = true添加到绘图命令中,才会显示绘图。通过设置默认值: default(show = true),您可以具有类似MATLAB的交互行为。
关于“何时返回”的第一部分是关于何时从REPL (或木星等)调用plot,而不适用于这里。
在这里,您可以使用其他选项之一:
display(p)调用之后调用plot! (这是最常见的方法)gui()之后调用plot!show = true调用添加一个plot!参数Plots.default(show = true),将默认设置设置为始终显示绘图其中任何一个都足以使绘图窗口出现。
情节在Julia过程结束时结束,如果这种情况发生得太快,您可以:
julia -i mycode.jl的形式运行您的代码--这将运行您的代码,显示情节,然后将您降落到Julia。这将使绘图保持打开状态,并允许您在需要时进一步处理代码中的变量。readline()调用。这将使Julia等待额外的换行符/Enter/ remain键的按下,而情节将继续显示,直到您按下该键。(这些建议归功于朱莉娅语篇研究。)
https://stackoverflow.com/questions/73599180
复制相似问题