Как начать линию в сюжете с конца существующей линии? - PullRequest
0 голосов
/ 08 апреля 2020

Я хотел бы нарисовать три пунктирные линии, все они в конце существующей линии. Это мой набор данных и код:

x = data.frame(Debt = c(115.413 , 116.522 , 123.361, 129.021, 131.786, 131.557, 131.397, 131.355, 132.1, 134.77))
future = data.frame(144.9, 147.9, 150.9)

plot(x$Debt, lwd = 2, lty = 1, type = "l", ylab = "", xlab ="", col = "red", xaxt = "n")
lines(????)
axis(1, at = seq(2010, 2020, 1), labels = seq(2010, 2020, 1))
abline(v = 2019, col = "black", ldy = 3)
legend("bottomright", col = c("black", "blue", "green"), bty = "n", lty = 1)

Пример графика, который я хотел бы получить:

enter image description here

In В моем случае линии, которые я хочу нарисовать из x $ Долг , - это точки в будущем .

Может ли кто-нибудь мне помочь?

1 Ответ

1 голос
/ 08 апреля 2020

Это решение совсем не красиво, но вы можете попробовать это. Из ваших исходных фреймов данных x и future создайте новый фрейм данных, объединив два данных, и разделите фрейм данных, чтобы отобразить следующий код:

x <- data.frame(Debt = c(115.413 , 116.522 , 123.361, 129.021, 131.786, 131.557, 131.397, 131.355, 132.1, 134.77))
future <- data.frame(Debt=c(144.9, 147.9, 150.9))
df <- data.frame(x=c(1:(nrow(x)+nrow(future))), y= c(x$Debt, future$Debt))

plot(range(df[,1]), range(100,150), type='n')
lines(df[1:nrow(x),1], df[1:nrow(x),2], type='l', col='black')
lines(df[nrow(x):nrow(df),1], df[nrow(x):nrow(df),2], type='l', col='blue')

Если вы хотите создать несколько строк в будущем диапазоне Вы можете добавить данные с годами и значениями к df и добавить lines() с соответствующими срезами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...