【问题标题】:Embedding googleVis charts into a web site将 googleVis 图表嵌入网站
【发布时间】:2011-01-10 12:24:45
【问题描述】:

googleVis 包中读取vignette“使用 googleVis 包,用户可以轻松地创建带有基于 R 数据框的交互式图表的网页,并通过 R.rsp 包显示它们或在他们自己的网站中"。按照说明,我能够看到示例图表,对 gvis 对象使用 plot 方法。此方法默认使用对象的类型和图表 id 信息在 googleVis 包的 rsp/myAnalysis 文件夹中创建一个 rsp 文件,并使用 R.rsp 包的本地 Web 服务器显示输出(默认为 8074 端口)。

谁能帮助我(或提供一些链接)某人必须遵循的程序才能将此类图表嵌入现有网站(例如 joomla 网站)?

【问题讨论】:

  • 如果你有网络服务器,则将 .rsp 重命名为 .html,然后上传到你的服务器,并通过 http:// 访问。可能它有效。所以,如果 joomla 支持 标签,那么复制 .rsp 的内容就可以了。抱歉,我对 joomla 不熟悉。虽然我无法发布,因为我无法在我的 wordpress 网站中使用
  • 它不适合我。似乎只能通过预处理 R 服务器页面并且只接受来自本地主机的连接的 HTTP 守护程序工作。更重要的是,例如 MotionChart rsp 文件包含一些行,例如 。复制粘贴后如何访问这些文件(带有相对路径)?
  • 嗨,嗯...,它对我有用... @include 指令与图表生成无关。因此,如果您通过例如 apache 访问motionchart .html,则指令本身会出现在页面上,但图表仍然有效。我们需要生成图表的只是从 .rsp 中的
  • 换句话说,M1$html$chart,其中M1 标签的 html,我将展示示例:-(
  • 终于发现博主支持

标签: r google-visualization


【解决方案1】:

显然我认为这对@gd047来说太冗长了,但我放了一个教程,因为它可能对其他想在自己的网站上使用googleVis的读者有所帮助。

从 CRAN 安装 googleVis

install.packages('googleVis')

注意消息。

然后,创建 gvis 对象:

library(googleVis)
M <- gvisMotionChart(Fruits, "Fruit", "Year")

你可以通过以下方式找到M的内容:

> M

您可以在浏览器上找到该图:

> plot(M)

那么,生成图表需要的是M$html$chart:

> M$html$chart
[1] "<!-- MotionChart ... omitted... \">\n</div>\n"

保存到文件中:

> cat(M$html$chart, file="tmp.html")

如果您将“tmp.html”作为文件打开(即地址为files:///***/tmp.html),则可能会出现安全警告。您需要的是通过 http:// 访问 html。

因此,如果您可以编辑任何

http://takahashik.blogspot.com/2011/01/googlevis-example.html

这是著名的“iris”版本示例:

http://takahashik.blogspot.com/2011/01/googlevis-example-for-data-iris_10.html

否则,如果你有一个web服务器,你可以通过在服务器上上传tmp.html来使用它。

【讨论】:

  • 你是对的!它也对我有用!您能否补充您的教程,展示如何创建动态生成数据的图表(例如,通过使用 RODBC 查询数据库)?
  • 嗨,听起来不错。你能告诉你“动态”是什么意思吗?你的意思是仅仅获取数据并在 R 上生成 googleVis 输出,还是其他任何东西?
  • 我的意思是也许我们可以混合使用 html 和 R 代码来动态创建内容(我再次对网站解决方案感兴趣)。包小插图的第 1.2 段说“图表数据可以嵌入到 html 文件中或动态读取”。然后在 2.5 中再次提到(与 R.rsp 包一起)。我认为这会很棒。
  • 听起来很有趣。然后我会和他们一起玩。如果我得到它们,我会在这里或其他任何地方发布。
  • 关于如何使这些东西与 file:// 协议一起工作的任何想法?我没有收到任何警告。它只是不起作用:(。安全设置?
【解决方案2】:

如果您想将图表手动复制并粘贴到 CMS(例如 Joomla/Wordpress 网站),则可以从“gvis”对象的 html 列表中进行。就像@kohske 建议的那样:

# demo data from manual
M <- gvisMotionChart(Fruits, "Fruit", "Year")
# write the HTML body to a temporary file without header and footer
cat(M$html$chart, file="temp.html")
# or with caption included:
cat(paste(M$html[c("chart", "caption")], collapse="\n"), file="temp.html")

然后将 temp.html 的内容复制并粘贴到您的 Joomla 站点。您应该注意将代码粘贴为 HTML 内容,而不是在 WYSIWYG 编辑器中(例如 Tiny MCE)!

如果您想在单独的页面上显示它,请不要忘记同时包含页眉和页脚:

# demo data from manual
M <- gvisMotionChart(Fruits, "Fruit", "Year")
# write the HTML to a temporary file with header and footer all included
cat(paste(M$html, collapse="\n"), file="temp.html")

最后:您可以轻松地将此文档上传到例如一个 ftp 服务器并通过任何浏览器访问它。

【讨论】:

  • 当然你也可以在没有网络服务器的情况下在本地机器上打开这个(后者)temp.html 文件,感谢@ViroshKa 的指出!
【解决方案3】:

Flash 内容可能无法在本地计算机上运行。我必须更改adobe site 的安全限制才能使其正常工作。

现在,按照 daroczig 的说明,可以在本地浏览器中查看内容,而完全不依赖 R.rsp。

【讨论】:

    【解决方案4】:

    您也可以编写以下代码

    print(M,"chart", file="myfile")
    

    将 html 输出复制并粘贴到您的网页,然后 googleVis 图表将运行

    【讨论】:

    • 这对我不起作用。 myfile.html 在 chrome/firefox 中呈现一个空白页面。
    【解决方案5】:

    我有一个脚本可以在数据更新时自动运行,并使用 RCurl 和 googleVis 在网站上放置一个 googleVis 图表。以下是 visChart 是图表的示例:

    library(RCurl)
    library(googleVis)
    

    制作visChart

    write(visChart$html$chart, file='visChart.html')
    ftpUpload('visChart.html', "ftp://username:password@example.com/path/to/'visChart.html")
    

    visChart$html$chart 仅提供图表的 html,没有页脚,因此我在 HTML 中使用 iframe 来访问此图表。如果您使用的是 google 网站、博客作者或想要一个 google 小工具,您可以使用 createGoogleGadget():

    write(createGoogleGadget(visChart), file='visChart.xml')
    ftpUpload('visChart.xml', "ftp://username:password@example.com/path/to/'visChart.xml")
    

    【讨论】:

      猜你喜欢
      • 2016-11-22
      • 2011-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-15
      • 1970-01-01
      相关资源
      最近更新 更多