如何解决向 ggplot 折线图添加空格
我总共有 39 周的平均力量和敏捷性数据。
然而,在第 10 周,没有收集到任何数据。
当我绘制折线图以显示这些数据时,如何放置一个空白间距来表示第 10 周的缺失值? 即折线图仅绘制第 9 周和第 11 周(适合第 10 周的最佳拟合线)
它目前按列条目数绘制它,因此看起来我有 38 周的连续数据,这是误导性的。
我当前绘制此代码的代码是:
strength <- data %>% select(contains("stregnth_fac_")) %>% colMeans(.,na.rm = TRUE)
agility <- data %>% select(contains("agility_fac_")) %>% colMeans(.,na.rm = TRUE)
strength <- as.data.frame(strength)
agility <- as.data.frame(agility)
x <- 1:38
colors <- c("strength" = "blue","agility" = "red")
plot + scale_x_continuous(breaks=seq(0,45,5)) +
geom_point()
plot <- ggplot() +
# blue plot
geom_point(data= strength,aes(x=x,y= strength)) +
geom_line(data= strength,y= strength),colour="darkblue",size=1) +
# red plot
geom_point(data= agility,y= agility)) +
geom_line(data= agility,y= agility),colour="red",size=1) +
ylab("Score (1 - 10)") +
xlab("Week") +
labs(colour = "Legend") +
ggtitle( "strength / agility Score") +
theme(plot.title = element_text(size = 15,face = "bold",hjust = 0.5)) +
ylim(5,10)
plot
解决方法
假设你的数据是有序的,你可以检查数轴是否有大于1周的间隔,并使用它的累计和来设置组。
library(ggplot2)
strength <- structure(list(strength = c(6.96645282796775,6.9434770196974,6.9294858041908,6.96177484634987,7.03444726005702,6.95287400076132,6.97520962449872,7.16991357843855,7.0516846361186,7.16047777687495,7.12286805260925,7.18192771084337,7.20209668025626,7.26842105263158,7.26456993569132,7.3665857212239,7.35361253506142,7.35968885387948,7.33265347746278,7.35438494373302,7.26772044934884,7.1710243902439,7.26794821498627,7.16986222179401,7.13271362974577,7.21015218261914,7.14576880807273,7.10625192485371,6.99561018437226,7.06859571023877,7.01988265971317,7.18301335559265,6.9627055825805,7.15087538619979,7.18207487973227,7.06894071714785,7.03441156228493,6.83571981424149)),row.names = c("strength_fac_1","strength_fac_2","strength_fac_3","strength_fac_4","strength_fac_5","strength_fac_6","strength_fac_7","strength_fac_8","strength_fac_9","strength_fac_11","strength_fac_12","strength_fac_13","strength_fac_14","strength_fac_15","strength_fac_16","strength_fac_17","strength_fac_18","strength_fac_19","strength_fac_20","strength_fac_21","strength_fac_22","strength_fac_23","strength_fac_24","strength_fac_25","strength_fac_26","strength_fac_27","strength_fac_28","strength_fac_29","strength_fac_30","strength_fac_31","strength_fac_32","strength_fac_33","strength_fac_34","strength_fac_35","strength_fac_36","strength_fac_37","strength_fac_38","strength_fac_39"),class = "data.frame")
# Assuming week is encoded in the row names
strength$week <- as.numeric(vapply(
strsplit(rownames(strength),"_"),tail,character(1),n = 1))
ggplot(strength,aes(week,strength)) +
geom_point() +
geom_line(
aes(group = cumsum(c(0,diff(week) > 1)))
)
由 reprex package (v1.0.0) 于 2021 年 7 月 22 日创建
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。