/ / Добавяне на няколко линейни сегмента в графики между много точки в R - r, график, ggplot2

Добавете няколко сегмента от линии в графите между много точки в R - r, парцел, ggplot2

Аз използвам geom_segment да се добави линеен сегмент върху парцел в R. Тъй като аз имам много сегменти линия (общо 80) трябва да добавите, изглежда не мога да добавя повече линии с помощта на "+". Заради ограничените слоеве в R? Както и да е, аз се чудя дали има някакъв начин да добавя онези 80 сегмента в един участък.

По-долу са кодовете, които използвам в моя парцел:

ggplot(df_var_g1,aes(Name,PrePost, fill=type)) +
geom_bar(colour="black", width=0.7, stat="identity",position=position_dodge(width=0.8)) +
scale_fill_manual(values=c("#F6D3D1","#C9CFE9")) +
geom_segment(aes(x = 0.8, y = 0.8525, xend = 1.2, yend = 0.8665, colour = "b"),size=1) +
geom_segment(aes(x = 1.8, y = 0.8525, xend = 2.2, yend = 0.8665, colour = "c"),size=1) +
geom_segment(aes(x = 2.8, y = 0.8525, xend = 3.2, yend = 0.8665, colour = "c"),size=1) +
geom_segment(aes(x = 3.8, y = 0.8525, xend = 4.2, yend = 0.8665, colour = "c"),size=1) +
geom_segment(aes(x = 4.8, y = 0.8525, xend = 5.2, yend = 0.8665, colour = "c"),size=1) +
geom_segment(aes(x = 5.8, y = 0.8525, xend = 6.2, yend = 0.8665, colour = "c"),size=1) +
...(perhaps 80 geom_segment here...) +
scale_color_manual(values=c("#FF6666","#0000FF")) +
geom_errorbar(aes(ymin=SDmin, ymax=SDmax), width=.1, position=position_dodge(1)) +
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),panel.background = element_blank(), axis.line = element_line(colour = "black"), axis.ticks.length=unit(-0.15, "cm"), axis.text.x = element_text(margin=margin(15,5,10,5,"pt")), axis.text.y = element_text(margin=margin(5,8,10,5,"pt"))) +
coord_cartesian(ylim=c(0.7,1.0))

Парцелът е както следва: моя сюжет

Може ли някой да реши проблема? Или просто се отървете от geom_segment, Искам само да добавя тези 80 реда ... Много благодаря!

Отговори:

0 за отговор № 1

Не използвайте geom_segment - употреба geom_line с групова естетика. Ще ви е необходима колона в кадъра с данни, която идентифицира кои точки да се свържат с двойка; geom_line може да свързва точки от редове, които имат същата стойност за тази колона

ggplot(df_var_g1, aes(Name,PrePost, fill=type)) +
geom_bar(colour="black", width=0.7,
stat="identity",position=position_dodge(width=0.8)) +
scale_fill_manual(values=c("#F6D3D1","#C9CFE9")) +
# draw lines connecting points with the same value in group_column
geom_line(aes(group_by = group_column))