2017-02-15 11 views
10

現在、Rのテーブルにデータを表示したい場合は、markdown、html href、LaTeX hrefでハイパーリンクできます。これは、テーブルを乱雑にしないで、特定の要素についての詳細情報にアクセスするのに適しています。ggplot2ビジュアライゼーションのハイパーリンクテキスト

同じ種類のハイパーリンクテキストをggplot2で作成したビジュアライゼーションでどのように表示できますか?どのように私は、対応Wikipediaのページへの軸のテキストのハイパーリンクを作ることができ、以下のコードで

enter image description here

だから例えば私は、このプロットを作成する場合は?

library(tidyverse) 

mtcars %>% 
    rownames_to_column('car') %>% 
    slice(5:8) %>% 
    mutate(
     link = c(
      'https://de.wikipedia.org/wiki/AMC_Hornet', 
      'https://en.wikipedia.org/wiki/Plymouth_Valiant', 
      'https://en.wikipedia.org/wiki/Plymouth_Duster', 
      'https://en.wikipedia.org/wiki/Mercedes-Benz_W123' 
     ) 
    ) %>% 
    ggplot(aes(x = mpg, y = car)) + 
     geom_point(size = 2) 
+2

を?明らかにJPEGなどは出ていますが、PDFはグリッド経由で表示される可能性があります。ウェブの場合、D3.js/SVGキャンバスで可能かもしれません。初期変換に 'ggplotly'を使用している可能性があります。私はどのオプションもシンプルになるとは思わない。 – alistaire

+0

私は軸のテキストに別々のリンクを適用するのは難しいと思います。(別に考えると)1つのgrobですが、 'gridSVG'パッケージはブラウザで見るとgrobsへのリンクを追加する方法を示しています。だからあなたはポイント、ラベルなどのための別のGrobsを使用して、これらへのリンクを追加することができます(Iveはこれ[ここ](http://chat.stackoverflow.com/rooms/135813/gridsvg)で行きます) – user20650

+0

@alistaire私は、 dはpdf_documentへのknitr/rmarkdown内でそれを使用したい –

答えて

11

これは私が使用した1つのオプションです。

あなたの例:

library(tidyverse) 
library(xml2) 
df <- mtcars %>% 
    rownames_to_column('car') %>% 
    slice(5:8) %>% 
    mutate(
    link = c(
     'https://de.wikipedia.org/wiki/AMC_Hornet', 
     'https://en.wikipedia.org/wiki/Plymouth_Valiant', 
     'https://en.wikipedia.org/wiki/Plymouth_Duster', 
     'https://en.wikipedia.org/wiki/Mercedes-Benz_W123' 
    ) 
) 
p <- df %>% 
    ggplot(aes(x = mpg, y = car)) + 
    geom_point(size = 2) 

そして:

ggsave(tf1 <- tempfile(fileext = ".svg"), p) 
links <- with(df, setNames(link, car)) 

xml <- read_xml(tf1) 
xml %>% 
    xml_find_all(xpath="//d1:text") %>% 
    keep(xml_text(.) %in% names(links)) %>% 
    xml_add_parent("a", "xlink:href" = links[xml_text(.)], target = "_blank") 
write_xml(xml, tf2 <- tempfile(fileext = ".svg")) 

ブラウザでtf2を開く場合:どのようなデバイスで保存

enter image description here

+2

うわー、これは印象的です! – Gregor

+0

私はそれが役に立ちましたが、すべてのブラウザで動作するかどうかはわかりません。私はWindowsでChrome 56とFirefox 50.1でこれを試しました... – lukeA

+2

これは素晴らしいです。 MacOSのFirefox、Safari、Chrome、Opera、およびVivaldiで動作します。 – alistaire

関連する問題