Как поместить метки значений внутри полигонов, а не по их краям в R - PullRequest
0 голосов
/ 25 апреля 2019

В R у меня есть гексбины / тайлграммы, представляющие юрисдикции канадской провинции, но метки идентификаторов гексбинов располагаются по углам полигонов, а не внутри них.

Ближайший я попал к нужной диаграмме:

enter image description here

Я связывался с geom_polygon, geom_text и geom_label и некоторыми другими, но ничего не поделаешь.Я видел, как люди используют rgeos для этого с государственными бинами США, но я предполагаю, что в моем случае это не нужно, поскольку R действительно распознает, что к моим гексбинам прикреплены некоторые идентификаторы, они просто размещают их не там, где я хочу.Я также попытался изменить аргумент позиции в geoms.

tileGram_f <- ggplot2::fortify(tileGram2) 
tileGram_f <- plyr::join(tileGram_f, tileGram2@data[,c("id", "tile_region")],by="id")

names(tileGram_f)[names(tileGram_f)=="tile_region"] <- "Country"

ggplot(tileGram_f) +
  geom_polygon(aes(long, lat, group = group), 
               fill = "yellow", color = "blue", show.legend = FALSE, size = 1) + 
  coord_equal() + 
  geom_text(data = tileGram_f, 
            aes(x = long, y = lat, label = Country),
            size = 8, color = "red", check_overlap = TRUE) +
  theme(panel.background = element_blank(), 
        axis.title = element_blank(), 
        axis.text = element_blank(), 
        axis.ticks = element_blank())

Идентификаторы hexbins становятся видимыми на geom_text() или geom_label() успешно (номера идентификаторов, 0-21), но они размещаются на каждоммногоугольника / шестигранного угла.Я хочу, чтобы они были ОДИН РАЗ за гексбин и внутри него, а не вокруг него.

...