2017-11-29 9 views
1

にggplot2形状の注釈を配置:私はタイトル/サブタイトルに図形を挿入(および塗りつぶしの色)しようとしていますが、そうする構文を見つけることができないタイトル

library(tidyverse) 
    D <-diamonds %>% filter(color=="D") %>%sample_frac(0.1) 
    G <-diamonds %>% filter(color=="G") %>% sample_frac(0.1) 

    ggplot(D, aes(x=carat, y=price))+ 
    geom_jitter(data=G)+geom_point(shape=6)+ 
     geom_jitter(data=D)+geom_point(shape=22, fill='red')+ 
    labs(title, "This is a title", 
    subtitle= 
    "D diamonds (insert shape 22 fill red) and G diamonds (shape 6 color black)", 
    caption = "what I want is to insert the shape and fill color into the (sub)title") 

提案を?アノテーションは、プロット空間でのみ動作するように設計されているようです。

+0

伝説を作って、タイトルの左下まで回避することができますか? – aosmith

答えて

1

画像で作業している可能性がありますが、凡例を使用して必要な外観を得ることです。これは最初に伝説を作ります。私はcolor審美的に凡例を作成しました。各凡例はポイントレイヤごとに1つです。私がaesで与える文字列は、ラベルの伝説になります。

scale_color_manualで凡例を変更します。これには、ラベルを正しい順序で取得し、色を設定する必要があります。さらに、私はguide_legendオプションを使用して、ラベルをキーボックスの左側(デフォルトは右)に移動し、ポイントに適切な図形と塗りつぶしを取得します。

themeでは、凡例を左上に移動することができ、灰色の代わりに白で塗りつぶして凡例の周囲のスペースを減らすことができます。

これは、すべてのようになります。ggplot2のcurrent development versionggplot2_2.1.0.9001以降

ggplot(D, aes(x = carat, y = price))+ 
    geom_jitter(data = G) + 
    geom_point(data = G, aes(color = "and G diamonds"), shape = 6) + 
    geom_jitter() + 
    geom_point(aes(color = "D diamonds"), shape = 22, fill='red') + 
    labs(title = "This is a title") + 
    scale_color_manual(name = NULL, values = c("black", "black"), 
         limits = c("D diamonds", "and G diamonds"), 
         guide = guide_legend(label.position = "left", 
              override.aes = list(shape = c(22, 6), 
                   fill = c("red", "black")))) + 
    theme(legend.direction = "horizontal", 
      legend.position = "top", 
      legend.justification = "left", 
      legend.key = element_rect(fill = "white"), 
      legend.key.size = unit(.5, "mm"), 
      legend.margin = margin(b = 0, 0, 0, 0)) 

enter image description here

、プロットの間のスペースを削減するthemelegend.box.spacingオプションがありますと伝説。私はlegend.box.spacing = unit(2, "mm")がかなり良いと思った。

+0

それはエレガントです!本質的に不正行為で、伝説をステルスでタイトルに潜入しようとする私のアプローチではなく、単に伝説をサブタイトル空間に移動することを提案します。賢い!猫の皮をむきます。 – user2292410

関連する問題