【问题标题】:ploting geom_points labels over raster data ggplot在栅格数据ggplot上绘制geom_point标签
【发布时间】:2021-12-09 18:41:54
【问题描述】:

我目前正在使用ggplot2 创建栅格地图,我有一些点希望在地图上看到名称。为此,我使用geom_point(),但我不知道如何显示每个点的标签。我正在使用的代码和生成的地图如下

library(gstat)
library(sp)
library(tidyr)
library(dplyr)
library(rgdal)
library(sf)
library(raster)
library(ggplot2)
library(viridis)
library(ggthemes)

# converting raster to df for ggplot
test_spdf <- as(raster, "SpatialPixelsDataFrame")
test_df <- as.data.frame(test_spdf)
colnames(test_df) <- c("value", "x", "y") 

# creates my points df from a spatialpointdataframe
dpts <- data.frame(estacoes@coords)
dpts$nomes <- estacoes$abrv
colnames(dpts) <- c("x", "y", "nome")

spf <- pauf # is my spatial polygons object

test <- ggplot() +  
  geom_tile(data=test_df, aes(x=x, y=y, fill=value), alpha=0.8) + 
  geom_polygon(data=spf, aes(x=long, y=lat, group=group), 
               fill=NA, size=0.25) +
  scale_fill_viridis(option="D") +
  coord_equal() +
  theme_map() +
  theme(legend.position="bottom") +
  theme(legend.key.width=unit(2, "cm")) + 
  geom_point(data=dpts, aes(x=x, y=y), size=3, shape=4)

【问题讨论】:

  • geom_label()geom_text()

标签: r ggplot2 raster sp


【解决方案1】:

只是用这个改变了 geom_point() 函数,得到了我想要的。 geom_label_repel 来自ggrepel

+ geom_label_repel(data= dpts, aes(x=x,y=y,label=nome),
                 box.padding   = 0.35, 
                 point.padding = 0.5,
                 segment.color = 'grey50')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多