2017-02-09 2 views
0

다음 코드에서 "log10_p_value"의 색 그라디언트가 "plot_size"로 표시되도록 범례의 측면을 변경하고 싶습니다.ggplot2 범례 색 그라디언트 조정

enter image description here

그래서 데이터는 여기에로드 할 수 있습니다

"log10_size"의 "plot_size"는 대표 색상 나타내는 흰색 거품 :

one.data <- 
    structure(list(plot_X = c(5.902, 1.184, 5.354, -3.513, 2.183, 
          2.217, -4.548, 6.466, -7.38, -6.19, 
          -6.374, 2.294, -3.653), 
       plot_Y = c(3.903, 7.13, -3.64, -5.64, 1.534, -4.031, 
          5.709, 0.066, 0.531, -3.234, 2.502, 6.686, 6.26), 
       plot_size = c(7.284, 5.413, 7.612, 4.725,5.633, 5.232, 
           4.547, 6.474, 5.567, 6.277, 6.874, 5.277, 4.394), 
       log10_p_value = c(-2.5229, -2.1549, -1.4949, -3, -1.5376, 
            -1.3565, -2.5229, -1.5229, -1.4949, -2.1549, 
            -1.3665, -2.1549, -1.3565)), 
      row.names = c(NA, 13L), 
      class = "data.frame", 
      .Names = c("plot_X", "plot_Y", "plot_size", "log10_p_value")) 

플롯을 생성하는 코드를 다음과 같습니다.

p1 <- 
    ggplot(one.data 
     , aes(plot_X 
       , plot_Y 
       , fill = log10_p_value 
       , size = plot_size)) + 
    geom_point(
    alpha = 0.6 
    , shape = 21) + 
    scale_size(range=c(0, 30)) + 
    scale_fill_gradientn(colours = c("blue", "green", "yellow", "red")) + 
    theme_bw() + 
    coord_cartesian(xlim = range(one.data$plot_X) + diff(range(one.data$plot_X))*c(-0.1, 0.1) 
        , ylim = range(one.data$plot_Y) + diff(range(one.data$plot_Y))*c(-0.1, 0.1)) 


p1 
+1

색상과 디자인은 독립적 인 미학이다, 하나는 분리되어 있고 하나는 연속적입니다. 정확히 출력물을 원하십니까? 올바른 것이 무엇이라고 생각하는지 분명하지 않습니다. – MrFlick

+0

정확히 작동하지 않는 것은 무엇입니까? –

+0

감사합니다. Mark, 매우 도움이되었습니다. 대단히 감사합니다. –

답변

0

방금 ​​t 그는 plot_size 범례의 색 눈금에서 색상으로 채우시겠습니까? 그렇다면

이 작동합니다 :

p1 + guides(size = guide_legend(override.aes = list(fill = "orange", alpha = 0.6))) 

생성이

enter image description here

이 그냥 일반적으로 "안전"값이다 (즉, 전설의 기본 미학을 타고 이상 다른 미학과의 혼동을 피하기 위해).

당신은 그들 각각에 differnt 색으로 가질 수 있지만, 색상이 플롯에 해당하지 않기 때문에 그건 정말, 정말 나쁜 생각입니다 크기 당신이 원하는 :

p1 + guides(size = guide_legend(override.aes = list(fill = c("blue", "green", "red"), alpha = 0.6)))