微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Pluto 中以交互方式使用 Gadfly

如何解决在 Pluto 中以交互方式使用 Gadfly

我在 Pluto 中使用 Gadfly,我想弄清楚是否有可能在 Pluto 笔记本中拥有绘图的交互式版本。如果我只使用 REPL,Gadfly 会生成非常好的交互式绘图,并在我的网络浏览器中打开:

using Gadfly
plot([sin,cos],4)

但是,如果我在 Pluto 中使用 Gadfly,则笔记本中包含的绘图不是交互式的,它们是静态的。这是 Pluto 笔记本的简单示例:

### A Pluto.jl notebook ###
# v0.12.20

using Markdown
using InteractiveUtils

# ╔═╡ 7bb74118-73d1-11eb-2bd5-c1ef89972288
using Gadfly

# ╔═╡ 9080ac2e-73d1-11eb-18d6-5f85903a7259
plot([sin,4)

# ╔═╡ Cell order:
# ╠═7bb74118-73d1-11eb-2bd5-c1ef89972288
# ╠═9080ac2e-73d1-11eb-18d6-5f85903a7259

如何在 Pluto 中获得交互式版本的 Gadfly 图?

非常感谢任何帮助!

解决方法

遵循https://github.com/fonsp/Pluto.jl/issues/546#issuecomment-705556778中的建议

您可以定义:

struct HTMLDocument
    embedded
end

function Base.show(io::IO,mime::MIME"text/html",doc::HTMLDocument)
    println(io,"<html>")
    show(io,mime,doc.embedded)
    println(io,"</html>")
end

然后做

plot([sin,cos],4) |> HTMLDocument

获取 Pluto 中的交互式绘图。

最好,

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。