使用Gadfly可以在网格中组合绘图并将组合绘图保存在文件中:
using Gadfly, Compose
x=1:0.1:5;
grid = Array(Compose.Context, (2, 2));
grid[1,1] = render(plot( x=x, y = x, Geom.line));
grid[1,2] = render(plot( x=x, y = x.^2, Geom.line));
grid[2,1] = render(plot( x=x, y = log(x), Geom.line));
grid[2,2] = render(plot( x=x, y = sqrt(x), Geom.line));
draw(SVG("example.svg", 100mm, 100mm), gridstack(grid));
我写了一个创建这样一个图的函数,这个函数创建了一个文件。对于想要使用此函数的人来说,为什么这个函数确实创建了一个文件,而单个图中所有其他绘图函数的结果直接显示在浏览器中,这有点不直观。
那么,是否可以调用一个函数(代替draw
?),以便网格定义的组合图直接显示在浏览器中,例如" normal"图
答案 0 :(得分:3)
function as_temp_html(gadflyplot)
thefilepath=tempname() * ".html"
write(open(thefilepath,"w"),stringmime("text/html",gadflyplot))
return thefilepath
end
您可以通过重复使用Gadfly's crossplatform "open_file" method:
在浏览器中打开此文件function open_file(filename)
if is_apple()
run(`open $(filename)`)
elseif is_linux() || is_bsd()
run(`xdg-open $(filename)`)
elseif is_windows()
run(`$(ENV["COMSPEC"]) /c start $(filename)`)
else
warn("Showing plots is not supported on OS $(string(Compat.KERNEL))")
end
end
编辑:现在答案使用了Gadfly专有代码