如何说服 ggplot2 geom_text 在时间序列图中标记指定日期? [英] How can I persuade ggplot2 geom_text to label a specified date in a time series plot?
问题描述
我正在使用 ggplot2 绘制时间序列数据的简单折线图.我遇到的一个困难是标记对应于 x 轴值的特定点,即日期.
I am using ggplot2 to plot simple line charts of time series data. One difficulty I have run into is labelling specific points corresponding to x-axis values i.e. dates.
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)
我想做的是为特定日期添加注释,这可能是最大值或最小值或其他注意事项.到目前为止,我使用的 geom_text 的所有排列都未能达到我想要的效果(或者实际上任何有用的东西).SO上有一些关于此的问题,但大多数似乎与散点图而不是时间序列有关;我没有成功地尝试适应它们.我也花了一些时间处理文档,但我的理解仍然有限.任何指针将不胜感激.
What I would like to do is add an annotation to a specific date, which might be a maximum or a minimum value or something else of note. So far all the permutations of geom_text I have used have failed to get the effect I want (or indeed anything useful). There are a few questions on this on SO but most seem related to scatter charts rather than time series; I haven't been successful in trying to adapt them. I have also spent some time with the documentation but my understanding is still limited. Any pointers would be appreciated.
推荐答案
要将文本添加到 ggplot
,请使用 geom_text
:
To add text to ggplot
, use geom_text
:
方法一:给你的data.frame
添加一列标签:
Method 1: Add a column of labels to your data.frame
:
tmp$note <- LETTERS[1:7]
ggplot(tmp,aes(date, price, label=note)) +
geom_line() +
geom_text(vjust=0, colour="red")
方法二:添加特定标签:
Method 2: Add a specific label:
ggplot(tmp,aes(date, price, label=date)) +
geom_line() +
geom_text(data=tmp[3, ], label="Something of note", vjust=1)
这篇关于如何说服 ggplot2 geom_text 在时间序列图中标记指定日期?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!