Ваш пример не может быть воспроизведен, поэтому я составил несколько случайных данных и нанес на график с помощью ggplot:
Z=seq(1,10,by=0.5)
Pr <- 1:19
L <- c("Point1", rep(NA, 17), "Point19")
df <- data.frame(Pr, Z, L)
library(ggplot2)
ggplot(aes(x=Pr, y=Z, label=L), data=df) +
geom_point() +
geom_label() +
xlab("Attachment Point") +
ylab("Price") +
ggtitle("CAT Bond Price with increasing attachment points") +
theme_classic()
Вы просто определяете, какие из них вы хотите отображать надписи в отдельном столбце меток, а ggplot выполняетостальное.
В вашем случае, когда вы определяете L, просто выполните
L <- ifelse(Z==7, "Class A", ifelse(Z==7.5, "Class B", NA))