the - smooth time series r
¿Cómo puedo convencer a ggplot2 geom_text de que etiquete una fecha específica en un gráfico de series de tiempo? (1)
Estoy usando ggplot2 para trazar gráficos de líneas simples de datos de series temporales. Una dificultad con la que me he encontrado es etiquetar puntos específicos correspondientes a los valores del eje x, es decir, fechas.
library(ggplot2)
library(scales)
date <- c("2011-09-19","2011-09-20","2011-09-21",
"2011-09-22","2011-09-23","2011-09-26","2011-09-27")
price <- c(100,110,105,115,120,115,125)
tmp <- data.frame(date,price)
tmp$date <- as.Date(tmp$date)
p <- ggplot(tmp,aes(tmp$date,tmp$price))
p <- p + xlab("Date")
p <- p + ylab("Price")
p <- p + layer(geom = "line")
p <- p + opts(title="Simple price plot")
print(p)
Lo que me gustaría hacer es agregar una anotación a una fecha específica, que podría ser un valor máximo o mínimo u otra cosa de importancia. Hasta ahora, todas las permutaciones de geom_text que he utilizado no han podido obtener el efecto que quiero (o, de hecho, nada útil). Hay algunas preguntas al respecto en SO, pero la mayoría parecen estar relacionadas con diagramas de dispersión en lugar de series temporales; No he tenido éxito en tratar de adaptarlos. También he pasado algo de tiempo con la documentación pero mi entendimiento es aún limitado. Cualquier indicador sería apreciada.
Para agregar texto a ggplot
, usa geom_text
:
Método 1: Agregue una columna de etiquetas a su data.frame
:
tmp$note <- LETTERS[1:7]
ggplot(tmp,aes(date, price, label=note)) +
geom_line() +
geom_text(vjust=0, colour="red")
Método 2: agregue una etiqueta específica:
ggplot(tmp,aes(date, price, label=date)) +
geom_line() +
geom_text(data=tmp[3, ], label="Something of note", vjust=1)