我正在尝试绘制涉及两个 geom_textlines 和一个 geom_bar 的绘图。我认为我的问题与告诉 ggplot 在哪里使用 df 的哪些部分有关。我最接近的是过滤
longdf
以使 geom_textline 绘图工作,但这会通过阻止 filter(vars == "New Wins")
来阻止绘制 geom_bar (我认为)。如您所见,我正在尝试使用 dplyr
来完成任务。
先感谢您的指导和指正!
library(dplyr)
library(tidyverse)
library(geomtextpath)
dummydf <- data.frame(vars=c('Roster','Alumni', 'New Wins'),SP22=c(34,5,4),
FA22=c(31,5,7), SP23=c(31,5,4), FA23=c(37,3,15),SP24=c(29,7,3),FA24=c(NA,NA,11))
longdf <- dummydf %>% pivot_longer(cols=c('SP22','FA22','SP23','FA23','SP24','FA24'),
names_to='semesters', values_to='value')
myplot <-longdf %>%
filter(vars != "New Wins") %>%
ggplot(aes(x=semesters, y=value, group=vars, color=vars)) +
geom_textline(aes(label = vars, hjust = vars), spacing = 100) +
scale_hjust_manual(values = c(0.1, 0.6)) +
scale_y_continuous(n.breaks = 16, limits = c(0, 44)) +
scale_x_discrete(limit = c('SP22','FA22','SP23','FA23','SP24'), expand = c(0,.2)) +
scale_color_manual(values = c("darkorchid2", "steelblue"), guide = "none") %>%
#filter(vars == "New Wins") %>%
ggplot(aes(x=semesters, y=value, color=vars)) +
geom_bar(aes(x = semesters, fill = 'gold1'))
myplot
也许像这样?
longdf %>%
filter(vars != "New Wins") %>%
ggplot(aes(x=semesters)) +
geom_col(aes(y= value), fill = 'gold1',
data = longdf %>% filter(vars == "New Wins")) +
geom_textline(aes(y=value, group=vars, color=vars,
label = vars, hjust = vars), spacing = 100) +
scale_hjust_manual(values = c(0.1, 0.6)) +
scale_y_continuous(n.breaks = 16, limits = c(0, 44)) +
scale_x_discrete(limit = c('SP22','FA22','SP23','FA23','SP24'), expand = c(0,.2)) +
scale_color_manual(values = c("darkorchid2", "steelblue"), guide = "none")