2012-12-28 11 views
7

私は、ハイパーリンクとggplot2プロットを提出しようとしています:ggplot2フィギュアにハイパーリンクを付けるにはどうすればいいですか?

これは動作します:

library(gridSVG) 
library(lattice) 

xyplot(mpg~wt, data=mtcars, main = "Link to R-project home") 
mainGrobName <- grep("main", grid.ls()[[1]], value=TRUE) 
grid.hyperlink(mainGrobName, "http://www.r-project.org") 
gridToSVG("HyperlinkExample.svg") 

これはない:

p = ggplot(mtcars, aes(wt, mpg)) + geom_point()+ labs(title="link") 
print(p) 
mainGrobName <- grep("title", grid.ls()[[1]], value=TRUE) 
grid.hyperlink(mainGrobName, "http://www.r-project.org") 
gridToSVG("HyperlinkExample.svg") 

この上の任意のヒントを?限り正しいmainGrobNameにこのコードを取得する(print=FALSEを設定することで、気が散る副作用を作成していない)成功するよう

答えて

4

私はサイモン・ポッター、gridSVGパッケージの著者の一人を求めている:ここで は彼(作業)の答えです:

http://r-forge.r-project.org/R/?group_id=1025

私はあなたがここに開発版を試してみてください示唆

gTable(したがってggplot2グラフィックス)を処理するための回避策が含まれています。

だから、新しいRセッションを起動し、次のコードを実行し、動作するようにあなたの例を試してみて、取得する:

install.packages("gridSVG", repos="http://R-Forge.R-project.org") 
library(gridSVG) 
library(ggplot2) 
(p <- ggplot(mtcars, aes(wt, mpg)) + geom_point() + labs(title="link")) 
titleGrobName <- grep("title", grid.ls(print=FALSE)$name, value=TRUE) 
grid.hyperlink(titleGrobName, "http://www.r-project.org/") 
gridToSVG("HyperlinkExample.svg", "none", "none") 

唯一の本当の違い、ここでは)(gridToSVGに与えられた追加のパラメータです。これは主にSVGファイルとHTMLラッパーだけに出力を減らすことです(そうでなければあなたの例では役に立たないJSONデータも取得します)。

0

grep("title", grid.ls(print=FALSE)$name, value=TRUE) 
#[1] "title.2-4-2-4" 

プロットオブジェクトの構造が明確に、より複雑な格子に比べています状況とgridToSVGは、デフォルトではそれをキャプチャしていません:

grep("title", grid.ls()$name, value=TRUE) 
#-------------------- 
GRID.gTableParent.125 
    background.1-5-6-1 
    spacer.4-3-4-3 
    panel.3-4-3-4 
    grill.gTree.103 
     panel.background.rect.94 
     panel.grid.minor.y.polyline.96 
     panel.grid.minor.x.polyline.98 
     panel.grid.major.y.polyline.100 
     panel.grid.major.x.polyline.102 
    geom_point.points.90 
    panel.border.zeroGrob.91 
    axis-l.3-3-3-3 
    axis.line.y.zeroGrob.113 
    axis 
    axis-b.4-4-4-4 
    axis.line.x.zeroGrob.107 
    axis 
    xlab.5-4-5-4 
    ylab.3-2-3-2 
    title.2-4-2-4 

これも面白い出力されますが、私は、私はgridToSVGは便利なHTMLオブジェクトに変換するために得ることができる方法を確認するために失敗します。

grid.ls(print=pathListing)$name 
関連する問題