Иногда возникает случай, когда вертикальная линия делает изображение лучше, чем точка, например. когда вы пытаетесь четко разграничить интервалы в нанесенных на график дискретных данных, но вам не нужны планки погрешностей или деления оси (или что-то еще, что усложнило бы ситуацию). Вероятно, это не то, что вам нужно часто (а если и есть, то, вероятно, есть лучший способ сделать это), но в определенных ситуациях это может быть очень удобно.

Сначала убедитесь, что ваши пакеты обновлены, запустив
update.packages(). Если у вас еще не установлены инструменты разработки R, вам нужно сделать это в первую очередь, так как для этого мы используем библиотеку, которая в настоящее время предоставляется на GitHub.
Затем мы установим библиотеку ungeviz, набор замечательных функций, призванных помочь вам визуализировать неопределенность. Они также полезны и просты в использовании для многих других сценариев. Для этого запустите devtools::install_github(“wilkelab/ungeviz”)

Теперь у нас есть доступ ко всем этим функциям в пространстве имен ungeviz::. Если вы не хотите использовать оператор области видимости, просто импортируйте библиотеку в свой сеанс (library(ungeviz)), но следите за маскировкой проблем/перекрывающимися именами объектов.
Поэтому, если мы хотим добавить вертикальные линии на наш график, мы можем соедините geom_vpline() с нашим вызовом ggplot() следующим образом:
+ ungeviz::geom_vpline(data=marks, aes(x=time, y=distance), color="blue", size=0.5)
Параметр 'size' управляет шириной; обычно 0,5 является хорошей отправной точкой. Используйте «height» для управления высотой и стандартные параметры цвета ggplot с «color». Если вы делаете простое наложение на существующие данные, оставьте такие параметры, как цвет и размер, вне функции aes() — просто поместите их после, как показано выше (помещение их в aes() приведет к отображению легенды; вы можете удалить ее , но в первую очередь нет причин для беспокойства, если только вы не занимаетесь более сложными вещами).

Мы просто будем использовать произвольные тестовые данные дискретных значений в линейном временном ряду:
ggplot(vert_sample) + geom_point(aes(x=time, y=value)) + labs(title=”Vertical Lines Test Graph”)

Теперь, чтобы ввести вертикальные метки, нам нужно либо добавить еще один столбец, либо нарезать некоторые данные в новый DataFrame. Скажем, мы хотим, чтобы было легче увидеть, где разграничивается каждая группа из десяти секунд. Для этого нам понадобится столбец, содержащий «значение» только с десятисекундными интервалами; есть довольно много способов сделать это. Один из них — создать и автоматически заполнить столбец всех десятисекундных интервалов в пределах временного диапазона, т. е. начать с 0 и увеличить на десять. Затем получите значения из исходных данных для каждого из этих приращений.

Вы также можете просто добавить новый столбец, содержащий значения только в соответствующих строках.

Когда данные готовы к работе, мы можем добавить вертикальные линии; если вы использовали отдельный DataFrame, не забудьте указать его в функции geom_vpline — geom_vpline(data=marks, aes(x=time, y=mark)) Если вы использовали тот же DataFrame, мы можем опустить параметр data и просто установить значения aes() в соответствующие имена столбцов ( ось x будет такой же, как ваши точки, а y будет значениями меток).
Давайте сгенерируем окончательный график:
ggplot(vert_sample) + geom_point(aes(x=time, y=value)) + geom_vpline(aes(x=time, y=mark), size=1, color=”darkred”, height=1) + labs(title=”Vertical Lines Test Graph”)

Большой! Теперь наши глаза могут легко сказать, где находятся десятисекундные строки, не отрывая взгляда от данных.