Иногда возникает случай, когда вертикальная линия делает изображение лучше, чем точка, например. когда вы пытаетесь четко разграничить интервалы в нанесенных на график дискретных данных, но вам не нужны планки погрешностей или деления оси (или что-то еще, что усложнило бы ситуацию). Вероятно, это не то, что вам нужно часто (а если и есть, то, вероятно, есть лучший способ сделать это), но в определенных ситуациях это может быть очень удобно.
Сначала убедитесь, что ваши пакеты обновлены, запустив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”)
Большой! Теперь наши глаза могут легко сказать, где находятся десятисекундные строки, не отрывая взгляда от данных.