如何在R中使用NPC坐标在ggplot2图形外部添加文本
解决ggpp::geom_text_npc无法显示图形框外文本的问题
要让geom_text_npc()的文本显示在图形框外部,除了设置coord_cartesian(clip = "off"),还需要调整绘图的边距,为外部文本留出显示空间。以下是修改后的代码:
library(tidyverse) library(purrr) library(ggpp) datumz <- data.frame(ex = c(1:5, 11:15), why = c(rep(1:5,2)), kat = c(rep("a", 5), rep("b", 5))) selex <- list(c("a", "A"), c("b", "B")) grafz <- function(a){ part <- datumz %>% filter(kat == a[1]) ggplot(part) + geom_point(mapping = aes(ex, why)) + coord_cartesian(clip = 'off') + ggpp::geom_text_npc(size = 8, aes(npcx = -.2, npcy = 1.2, label = a[2])) + # 调整绘图边距,为外部文本留出空间 theme(plot.margin = margin(50, 20, 20, 50)) } purrr::map(selex, grafz)
关键说明:
coord_cartesian(clip = "off"):取消坐标区域的裁剪,允许元素显示在轴范围之外。theme(plot.margin = margin(50, 20, 20, 50)):增大绘图的上、左边距(单位为points),确保超出的文本有足够空间显示,不会被画布边缘截断。geom_text_npc()的npcx=-0.2和npcy=1.2坐标会将文本定位在绘图区域左外侧、上外侧的位置,且不受轴范围变化影响。
内容的提问来源于stack exchange,提问作者odroidnewbie
相关产品推荐
相关产品推荐

