我正在编写下一个代码:ggplot()+ geom_sf(data = DPEst_DH, aes(size = di1a), col="orangered")
有效。
但我想要一个有色传奇。
换句话说,我想在两种美学、尺寸和颜色上应用相同的领域,但保留一个图例。
...+ geom_sf(data = DPEst_DH, aes(color=di1a, size=di1a))
使用该代码行,我有下一个输出,但我想知道是否有可能有最后一个图像。
我正在编写下一个代码:ggplot()+ geom_sf(data = DPEst_DH, aes(size = di1a), col="orangered")
有效。
但我想要一个有色传奇。
换句话说,我想在两种美学、尺寸和颜色上应用相同的领域,但保留一个图例。
...+ geom_sf(data = DPEst_DH, aes(color=di1a, size=di1a))
使用该代码行,我有下一个输出,但我想知道是否有可能有最后一个图像。
实现您想要的结果的一种选择是di1a
使用例如使您的列成为离散变量cut
,并通过设置颜色和大小scale_xxx_manual
。
使用包装nc
附带的形状文件作为示例数据:sf
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)