【问题标题】:Is there any way to add a color palette into the size aesthetic?有没有办法在尺寸美学中添加调色板?
【发布时间】:2021-11-12 17:25:18
【问题描述】:

我正在使用下一个代码:ggplot()+ geom_sf(data = DPEst_DH, aes(size = di1a), col="orangered"),它可以工作。

但我想要一个彩色的传奇。

换句话说,我想在两种美学、尺寸和颜色上应用相同的字段,但保留一个图例。

...+ geom_sf(data = DPEst_DH, aes(color=di1a, size=di1a))

使用该代码行,我有下一个输出,但我想知道是否有可能有最后一个图像。

【问题讨论】:

    标签: r ggplot2 sf aesthetics viridis


    【解决方案1】:

    实现您想要的结果的一个选项是使用例如使您的 di1a 列成为离散变量。 cut 并通过scale_xxx_manual 设置颜色和大小。

    使用sf 包附带的nc 形状文件作为示例数据:

    library(ggplot2)
    library(dplyr)
    
    # Example data
    nc_center <- sf::st_read(system.file("shape/nc.shp", package = "sf"), quiet = TRUE) %>% 
      sf::st_centroid() 
    
    # Bin numeric variable
    labels <- pretty(range(nc_center$AREA))
    breaks <- c(labels, Inf)
    nc_center <- nc_center %>% 
      mutate(area = cut(AREA, breaks = breaks, labels = labels, right = FALSE))
    
    # Color and size palette
    colors <- c("#132B43", "#56B1F7") # Default ggplot2 blue colors used for color gradient
    pal <- colorRampPalette(colors)(length(labels))
    pal_size <- seq(1, 6, length.out = 5) # c(1, 6): Default range for size scale
    
    ggplot() +
      geom_sf(data = nc_center, aes(color = area, size = area)) +
      scale_color_manual(values = pal) +
      scale_size_manual(values = pal_size)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-08
      • 2021-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多