2017-01-13 18 views
1

ツリーマップのラベルをアイコンで置き換えたい。たとえば、以下のダミーデータでは、ラベルを状態フラグで置き換えます。これはtreemapパッケージやその他のパッケージを使ってRで実装することは可能ですか?R:ツリーマップのラベルの代わりにアイコンを使用する

library(treemap) 

my_data=rbind(data.frame(state="CA",Car=c(6,8,5)), 
      data.frame(state="FL",Car=c(5,6,4)), 
      data.frame(state="NY",Car=c(10,5,0)), 
      data.frame(state="CT",Car=c(10,5,5)), 
      data.frame(state="MD",Car=c(7,7,8))) 


treemap(my_data, 
    index="state", 
    vSize="Car", 
    vColor = "Car", 
    type="value", 
    border.col ="white", 
    title="", 
    title.legend="", 
    ) 

enter image description here

答えて

0

のみ部分的な答えが、いくつかの使用であるかもしれません。

あなたがオブジェクトとしてツリーマップ機能の出力を保存する場合は、四角形の座標、幅と高さにアクセスすることができますし、このようggplotに自分で再使用:

library(tidyverse) 
library(ggplot2) 
library(treemap) 

my_data=rbind(data.frame(state="CA",Car=c(6,8,5)), 
       data.frame(state="FL",Car=c(5,6,4)), 
       data.frame(state="NY",Car=c(10,5,0)), 
       data.frame(state="CT",Car=c(10,5,5)), 
       data.frame(state="MD",Car=c(7,7,8))) 


obj <- treemap(my_data, 
     index="state", 
     vSize="Car", 
     vColor = "Car", 
     type="value", 
     border.col ="white", 
     title="", 
     title.legend="", 
) 


obj$tm %>% 
    mutate(x1 = x0 + w, 
     y1 = y0 + h, 
     xcentre = (x0 + x1)/2, 
     ycentre = (y0 + y1)/2) %>% 
    ggplot(aes(xmin = x0, ymin = y0, xmax = x1, ymax = y1, fill = vColor, x = xcentre, y = ycentre, label = state)) + 
    geom_rect(colour = "white") + 
    geom_text(colour = "white") + 
    coord_equal() + 
    theme_void() 

enter image description here

ここでは、geom_text()をフラグを(xcentre, ycentre)に置き換えるものに置き換えるだけです。 baptiste; s ggflags packageはこれを行いますが、現在はggplot2と同期していません。だからあなたのオプションはggflagsを更新しています(またはbaptisteにはうまくやってもらうように求めています)。

編集 - あなたはアスペクト比を確認し、coord_equalを使用するのが正しいかどうかを確認する必要があります。これは読者のための練習として残されています。

関連する問題