geom_text_repel метки / лидерские линии, не совпадающие с некоторыми точками, ggplot2 - PullRequest
1 голос
/ 27 апреля 2020

Я пытаюсь прикрепить метки к последней / единственной точке данных в каждой серии, связанной с моим графиком, используя geom_text_repel. Я использую position_jitterdodge (), чтобы устранить наложение между точками и определил это как позицию для всех точечных / линейных / текстовых объектов. Некоторые из моих меток выглядят просто отлично, а некоторые нет, например, крайняя левая метка для графика 2231 (она должна ассоциироваться с крайним левым красным кружком). Кто-нибудь имеет какой-либо вклад в то, как я мог бы решить эту проблему?

Код:

ggplot(data = LGR_Data1, aes(x = Proj_Year, y = Max_Tidbit_Temp, group = PermID, color = `CTRL/LOGJ`, shape = `CTRL/LOGJ`, fill = `CTRL/LOGJ`, linetype = `CTRL/LOGJ`)) + 
  geom_line(position = position_jitterdodge(0.05)) + 
  geom_point(position = position_jitterdodge(0.05)) + 
  labs(x = "Project Year", y = "Maximum LGR Temperature (°C)")+ scale_x_continuous(breaks = seq(-3,3,1)) + 
  geom_text_repel(data = subset(LGR_Data1[LGR_Data1$YearID %in% c("15N2231","19N1301", "19N1302", "15N1303", "19N1304", "19N1306", "15N307", "15N1310", "19N1312", "19N1313", "19N2124", "19N2125", "19N2230",  "19N2326", "19N2328", "16N2329", "19N2344", "19N3331", "16N3342", "16N3343", "19N3439", "16NC002", "17NC003", "17NC004"), ]), aes(label = PermID, fontface = "bold"), size = 1, color = "black", segment.color = "grey55", segment.size = 0.1, box.padding = 0.5, point.padding = 0.5, direction = "y", position = position_jitterdodge(0.05)) 

Данные:

LGR_Data1 <-
structure(list(PermID = c("1301", "1303", "1304", "1310", "1313", 
"2124", "1307", "2124", "2230", "2124", "2230", "2326", "2328", 
"1301", "1302", "1304", "1313", "1312", "1301", "1302", "1313", 
"2124", "2230", "2326", "2328", "1312", "1306", "1304", "2344", 
"3331", "3439", "2231", "3343", "2125", "2329", "2344", "3331", 
"3342", "3343", "3439", "C003", "C004", "C002", "2344", "3439", 
"2125", "C003", "C004", "2344", "3331", "3439", "2125", "2125", 
"2344", "3331", "3439"), Proj_Year = c(-1, -1, -1, -1, -1, -3, 
-1, -2, -2, -1, -1, -1, -1, 2, 2, 2, 2, 2, 3, 3, 3, 1, 1, 1, 
1, 3, 3, 3, -3, -3, -3, -3, -3, -2, -2, -2, -2, -2, -2, -2, -2, 
-2, -2, -1, -1, -1, -1, -1, 0, 0, 0, 0, 1, 1, 1, 1), `CTRL/LOGJ` = c("LOGJ", 
"LOGJ", "LOGJ", "LOGJ", "LOGJ", "LOGJ", "LOGJ", "LOGJ", "LOGJ", 
"LOGJ", "LOGJ", "LOGJ", "LOGJ", "LOGJ", "LOGJ", "LOGJ", "LOGJ", 
"LOGJ", "LOGJ", "LOGJ", "LOGJ", "LOGJ", "LOGJ", "LOGJ", "LOGJ", 
"LOGJ", "LOGJ", "LOGJ", "CTRL", "CTRL", "CTRL", "CTRL", "CTRL", 
"CTRL", "CTRL", "CTRL", "CTRL", "CTRL", "CTRL", "CTRL", "CTRL", 
"CTRL", "CTRL", "CTRL", "CTRL", "CTRL", "CTRL", "CTRL", "CTRL", 
"CTRL", "CTRL", "CTRL", "CTRL", "CTRL", "CTRL", "CTRL"), YearID = c("15N1301", 
"15N1303", "15N1304", "15N1310", "15N1313", "15N2124", "15N1307", 
"16N2124", "16N3230", "17N2124", "17N2230", "17N2326", "17N2328", 
"18N1301", "18N1302", "18N1304", "18N1313", "18N1312", "19N1301", 
"19N1302", "19N1313", "19N2124", "19N2230", "19N2326", "19N2328", 
"19N1312", "19N1306", "19N1304", "15N2344", "15N3332", "15N3439", 
"15N2231", "15N3343", "16N2125", "16N2329", "16NC001", "16N3331", 
"16N3342", "16N3343", "16N3439", "16NC003", "16NC004", "16NC002", 
"17NC001", "17N3439", "17N2125", "17NC003", "17NC004", "18N2344", 
"18N3331", "18N3439", "18N2125", "19N2125", "19N2344", "19N3331", 
"19N3439"), Max_Tidbit_Temp = c(23.857, 24.605, 24.002, 24.098, 
24.243, 23.665, 24.026, 22.8, 22.824, 21.915, 21.891, 17.938, 
32.021, 23.136, 23.472, 23.256, 23.28, 23.28, 22.345, 22.513, 
22.465, 22.705, 19.698, 15.223, 18.39, 22.465, 23.016, 22.489, 
23.761, 24.388, 24.315, 23.93, 24.171, 23.16, 22.513, 22.824, 
23.352, 23.569, 23.328, 23.208, 23.112, 23.232, 22.896, 21.963, 
22.178, 22.13, 22.082, 22.25, 23.665, 24.146, 23.93, 24.002, 
23.016, 22.776, 23.448, 23.088)), class = c("spec_tbl_df", "tbl_df", 
"tbl", "data.frame"), row.names = c(NA, -56L), spec = structure(list(
    cols = list(PermID = structure(list(), class = c("collector_character", 
    "collector")), Proj_Year = structure(list(), class = c("collector_double", 
    "collector")), `CTRL/LOGJ` = structure(list(), class = c("collector_character", 
    "collector")), YearID = structure(list(), class = c("collector_character", 
    "collector")), Max_Tidbit_Temp = structure(list(), class = c("collector_double", 
    "collector"))), default = structure(list(), class = c("collector_guess", 
    "collector")), skip = 1), class = "col_spec"))

Example graphic

...