#r #ggplot2
#r #ggplot2
Вопрос:
Я хочу добавить несколько меток к графику, на котором ось x является датой. Я хочу, чтобы метка была центрирована вокруг середины. Как мне найти среднюю точку на оси x?
Пример:
example <- data.frame(time = c("02/26/11", "05/26/10", "05/27/10", "05/28/10",
"05/29/10", "06/27/10", "06/30/10", "10/27/10",
"10/27/10", "12/26/12"),
value = c(5, 1, 7, 8, 11, 20, 14, 1, 20, 12))
example$time <- as.Date(example$time, format = "%m/%d/%Y")
ggplot(example, aes(x = time, y = value)) geom_point()
scale_x_date(labels = date_format("%b%Y"),
breaks = "3 month",
minor_breaks = "1 month")
Теперь я хочу использовать geom_text для добавления текстовой метки, в которой координата x расположена в середине оси x, а y — в середине оси y.
Ответ №1:
Похоже, вы просто хотите что-то вроде
xx<-data.frame(
time=mean(range(example$time)),
value=mean(range(example$value))
)
ggplot(example, aes(x = time, y = value)) geom_point()
geom_text(data=xx, label="midtext")
scale_x_date(labels = date_format("%b%Y"),
breaks = "3 month",
minor_breaks = "1 month")
Мы находим центр графика, находя центр диапазонов каждой из осей. Затем мы используем эти значения в вызове geom_text
.
Это приведет к созданию этой картины.
PS. Я также изменил вашу строку форматирования даты на
example$time <- as.Date(example$time, format = "%m/%d/%y")
поскольку у вас есть только двузначные годы, а не 4-значные годы.