关于输出的几个函数print、display、show、gui()

print/println()

规范(无修饰)文本表示,默认在stdout输出。

print("abc")
println(stdout,"abc")

display()

用于丰富可用的多媒体显示,重载了show()函数。
可以注册具有多媒体功能的显示后端(记得安装后端显示包)
REPL调用display(obj)来显示执行一行代码的结果,因此在.jl文件中需要手动调用display(obj)显示执行一行代码的结果。(特别是多媒体对象)
也可用于输出普通文本。

println("abc")
display("abc")

show()

一个底层的显示接口,用户可为输出自定义的数据类型重写该函数。

show("abc")
print("abc")

gui()

显示一个独立的绘图窗口。
在同一个绘图窗口中显示内容可通过resue=true设置。

using Plots
plot(rand(10,1))
gui()
plot(rand(3,3),  reuse=true)
gui()
using Plots
gr(reuse=true)
plot(rand(10,1))
gui()
plot(rand(3,3))
gui()

默认显示Plot结果

.jl文件中不用再调用gui()

using Plots
gr(show=true)
plot(rand(3))
plot!(rand(5))
using Plots
gr()
default(show = true)
plot(rand(3))
plot!(rand(5))
using Plots
gr()
plot(rand(3),show=true)
plot!(rand(5),show=true)

相关话题:

1 个赞

Hi, 我在cmd中直接运行 julia test.jl绘图画面会一闪而过消失,请问这该怎么解决 ?
环境是 win10 + 1.5.0

有安装了Plots、GR包吗?

julia> import Pkg;Pkg.status()
Status `C:\Users\Administrator\.julia\environments\v1.4\Project.toml`
  [c52e3926] Atom v0.12.15
  [336ed68f] CSV v0.6.2
  [a93c6f00] DataFrames v0.21.2
  [28b8d3ca] GR v0.50.1
  [652e05fd] JuliaZH v1.5.0
  [e5e0dc1b] Juno v0.8.2
  [91a5bcdd] Plots v1.5.0

然后我试了下在REPL下include("test.jl")可以运行。好像直接CMD下julia test.jl也是一闪而过。

应该是图形窗口随julia解释器结束一起结束了,还不知道如何使图形窗口独立julia解释器 :smile:

include是正常的,直接cmd里面是闪过的,目前除了savepng,我没找到其它的cmd查看图片的方法

这个分析应该是对的,除非开一个新进程显示图片

1 个赞

嗯,我后续继续关注下这个问题!目前还学的比较少。 :grinning:

换个绘图显示的后端PlotlyJS,你看能不能符合你的需求。
(可以查看结果,不过不是桌面方式的图形窗口)

julia> import Pkg;Pkg.status()
Status `C:\Users\Administrator\.julia\environments\v1.4\Project.toml`
  [c52e3926] Atom v0.12.15
  [336ed68f] CSV v0.6.2
  [a93c6f00] DataFrames v0.21.2
  [28b8d3ca] GR v0.50.1
  [652e05fd] JuliaZH v1.5.0
  [e5e0dc1b] Juno v0.8.2
  [58dd65bb] Plotly v0.3.0
  [f0f68f2c] PlotlyJS v0.13.1
  [91a5bcdd] Plots v1.5.0

代码如下:

# test.jl
using Plots
plotly()
plot(rand(10,1))
gui()