命令如下
histogram
或
plot
通常不为用户显示绘图,他们只生成并返回绘图。
显示绘图的实际上是Julia的显示系统。
当Julia处于交互使用中时,如在repl、jupyter和juno中,显示系统将自动调用,命令不以“;”结尾。这就是为什么在repl、jupyter和juno中显示绘图。
但是,当从命令行执行文件时,显示系统不会自动激活。所以你必须先调用
display
你自己是这样的:
using Plots, Measures
pyplot()
data = [rand(100), rand(100)];
h = histogram(data, layout = 2,
title = ["Dataset A" "Dataset B"], legend = false,
ylabel = "ylabel", margin = 5mm)
display(h)
但即使这样也不能给你图片,只能用文字来表示情节。这是因为在命令行Julia中,只有一个非常简单的文本显示系统,而且它不支持
Plots
. 要显示绘图,您必须编写自己的显示机制,并将其推送到Julia显示系统,这并不困难,但有点乏味。当我有更多的时间时,我会举个例子。
顺便说一句,如果您只想从命令行生成绘图,另一种方法是将其保存到文件中,这比自己创建一个显示机制更直接。
更新
这里是一个简单的显示,它模仿了JuliaRepl中使用的显示系统。这里的代码是针对Julia 0.7/1.0的。
const output = IOBuffer()
using REPL
const out_terminal = REPL.Terminals.TerminalBuffer(output)
const basic_repl = REPL.BasicREPL(out_terminal)
const basic_display = REPL.REPLDisplay(basic_repl)
Base.pushdisplay(basic_display)
在上一个代码之前使用它将显示绘图。请注意您使用
pyplot()
后端
情节
,其默认值是打开一个新窗口并在窗口中显示绘图,但当Julia在命令行中完成执行时,它将关闭绘图窗口。为了解决这个问题,我们可以更改默认显示的方式,或者使用另一个后端来显示绘图,例如,
plotly()
后端将通过HTML显示绘图。完整的代码可能如下所示:
const output = IOBuffer()
using REPL
const out_terminal = REPL.Terminals.TerminalBuffer(output)
const basic_repl = REPL.BasicREPL(out_terminal)
const basic_display = REPL.REPLDisplay(basic_repl)
Base.pushdisplay(basic_display)
using Plots, Measures
plotly()
data = [rand(100), rand(100)];
h = histogram(data, layout = 2,
title = ["Dataset A" "Dataset B"], legend = false,
ylabel = "ylabel", margin = 5mm)
display(h)