在ggplot中将面板标签向下移动

3
我该如何将面板标签(A,B,C)移动到盒子内,位于左上角?

enter image description here

样例数据集:

date <- as.factor(rep(c(1,2,3,4,5,6,7,8), 7))
chlconc <- runif(56, min = 0.1, max = 15.9)
colony <- as.factor(c(rep("A", 24), rep("B", 16), rep("C", 16)))
year <- as.factor(c(rep("2014", 8), rep("2016", 8), rep("2017", 8), rep("2016", 8), rep("2017", 8), rep("2014", 8), rep("2017", 8)))
graphvalues <- data.frame(year, date, colony, chlconc)

ggplot 代码

library(ggplot2)
library(ggthemes)

pd <- position_dodge(0.1)

ggplot(graphvalues, aes(date, chlconc, group = year)) + 
  facet_wrap(~colony, ncol = 1, labeller = label_parsed) + 
  geom_line(aes(color = year), position = pd) +
  geom_point(aes(color = year), position = pd) +
  scale_y_continuous(limit=c(0, 16), breaks=c(0, 4, 8, 12, 16), labels=c(0, 4, 8, 12, 16)) +
  scale_color_discrete(name="Year") +
  geom_hline(yintercept=2, linetype="dashed") +
  theme(legend.text=element_text(size=14)) + 
  theme(axis.text=element_text(size=14)) + 
  theme(axis.title=element_text(size=18)) + 
  theme(legend.title=element_text(size=14)) +
  theme_few() + 
  theme(strip.text = element_text(hjust = 0, size = 14, face = "bold"))
1个回答

3

面板标签位于绘图区之外,我认为没有办法将它们放在绘图区内。但是您可以通过添加一个 geom_text() 层,并使用面板变量作为标签,并设置 geom_text() 层的 x 和 y 值,将其放置在图形的左上角来在绘图区内获取标签。然后您还可以移除面板标签。

ggplot(graphvalues, aes(date, chlconc, group = year)) + 
  facet_wrap(~colony, ncol = 1) + 
  geom_line(aes(color = year), position = pd) +
  geom_point(aes(color = year), position = pd) +
  scale_y_continuous(limit=c(0, 16), breaks=c(0, 4, 8, 12, 16), labels=c(0, 4, 8, 12, 16)) +
  scale_color_discrete(name="Year") +
  geom_hline(yintercept=2, linetype="dashed") +
  theme_classic() + 
  theme(strip.text = element_blank(), #remove strip text
    strip.background = element_blank()) + #remove strip rectangles
  geom_text(aes(label = colony, x = 0.75, y = 15.5)) #add titles using geom_text()

enter image description here


谢谢!您知道如何在geom_text()中指定Arial字体族和大小吗? - Splash1199

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接