代码之家  ›  专栏  ›  技术社区  ›  aaaaa

将项添加到现有图例

  •  0
  • aaaaa  · 技术社区  · 6 年前

    ggplot2

    我用了两个 data.frames df_1 df_2 geom_point 打电话给他们。我设法创造了一个传奇 数据框2 数据框1 .

    下面是一个代码示例,其中还包括绘图:

    ########## Create sample data
    set.seed(69)
    df_1 = data.frame(lat = rnorm(20), 
                      lon = rnorm(20), 
                      cor = c(rep('positive', 12), rep('negative', 8)), 
                      sign = 0)
    
    df_2 = data.frame(lat = rnorm(20), 
                      lon = rnorm(20), 
                      cor = c(rep('positive', 7), rep('negative', 13)), 
                      sign = c(rep(99, 5), rep(95, 6), rep(90,9)))
    
    #### Plot data
    library(ggplot2)
    p = ggplot() +
    
        # geom_point for df_1
        geom_point(data=df_1, aes(x=lon, y=lat), 
                   alpha=0.7, color = 'darkgrey', size = 3) +
    
        # geom_point for df_2
        geom_point(data=df_2, aes(x=lon, y=lat, size=sign, colour = cor), alpha = 0.5) +
    
        scale_color_manual(values=c("red", "blue"),
                           name='cor', 
                           labels = c('neg', 'pos'),
                           guide = guide_legend(override.aes = list(alpha = 1, size = 3))) +
    
        scale_size(range = c(1,3), 
                   breaks = c(90, 95, 99),
                   labels = c(0.1, 0.05, 0.01),
                   name = 'sign',
                   guide = guide_legend(override.aes = list(colour = 'black', 
                                                            alpha = 1)))
    
    print(p)
    

    enter image description here

    我怎样才能为 几何点 召唤 数据框1 ?

    1 回复  |  直到 6 年前
        1
  •  1
  •   pogibas    6 年前

    将第三个暗灰色点添加到cor图例中 . 为此,您必须:

    1. cor 中的值 df_1 都一样。
    2. 指定颜色 数据框1 aes
    3. 为中的第三点添加信息 scale_color_manual

    代码:

    # Change values so we would have single color for them
    df_1$cor <- "foo" 
    
    library(ggplot2)
    ggplot() +
        geom_point(aes(lon, lat, color = cor), df_1,
                   alpha = 0.7, size = 3) +
        geom_point(aes(lon, lat, size = sign, colour = cor), df_2,
                   alpha = 0.5) +
        scale_color_manual(values = c("darkgrey", "red", "blue"),
                           labels = c("not sign", "neg", "pos"),
                           guide = guide_legend(override.aes = list(alpha = 1, size = 3))) +
        scale_size(range = c(1, 3), 
                   breaks = c(90, 95, 99),
                   labels = c(0.1, 0.05, 0.01),
                   guide = guide_legend(override.aes = list(colour = "black", alpha = 1)))
    

    结果:

    enter image description here