即使我发现哈德利对谷歌的论坛中发帖POSIXct和geom_vline,我无法完成它.我有一个时间序列,并希望绘制1998年,2005年和2010年的垂直线.我尝试使用ggplot和qplot语法,但我仍然看不到垂直线,或者在第一个垂直网格上绘制垂直线,整个系列在右边有点奇怪地移动.
gg <- ggplot(data=mydata,aes(y=somevalues,x=datefield,color=category)) +
layer(geom="line")
gg + geom_vline(xintercept=mydata$datefield[120],linetype=4)
# returns just the time series plot I had before,
# interestingly the legend contains dotted vertical lines
Run Code Online (Sandbox Code Playgroud)
我的日期字段格式为"1993-07-01",属于班级Date.
我在ggplot中有一条水平线,我想在y轴上标注它的值(7.1).
library(ggplot2)
df <- data.frame(y=c(1:10),x=c(1:10))
h <- 7.1
plot1 <- ggplot(df, aes(x=x,y=y)) + geom_point()
plot2 <- plot1+ geom_hline(aes(yintercept=h))
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.
当x轴是datetime(POSIXct)对象时,我在向绘图添加垂直线时遇到一些麻烦.似乎总是想把线放在大纪元.这是一个例子:
df <- data.frame(x=ymd('2011-01-01')+hours(0:24), y=runif(25))
ggplot(df, aes(x=x,y=y)) + geom_point()
Run Code Online (Sandbox Code Playgroud)

现在我尝试在第三个观察时间添加一条线:
ggplot(df, aes(x=x,y=y)) + geom_point() + geom_vline(aes(x=df$x[3]))
Run Code Online (Sandbox Code Playgroud)

我做错了什么?
我试图显示一个折线图,其中一些垂直线作为特定时间点的指标,并有一个标记这些时间点的图例.
根据ggplot2一书中第6.4.4节的例子,我尝试了以下内容
huron<-data.frame(year=1875:1972,level=LakeHuron)
vertDf<-data.frame(years=c(1900,1925,1950),labels=c("A","B","C"))
pltWithLines<-ggplot(huron, aes (x=year,y=level)) +
geom_line() +
geom_vline(aes(xintercept=years,color=labels),data=vertDf) +
scale_color_manual("Sample Year",
values=c("A"="blue","B"="red","C"="green"))
Run Code Online (Sandbox Code Playgroud)
这会生成一个图表,其中垂直线具有正确的颜色,但根本没有图例.
这有什么问题?
我正在尝试绘制包含多个时间序列数据的折线图,其中每条线显示特定对象随时间的销售趋势 - 在相同的开始日期和结束日期内。我的数据集已经处于“融化”形式,如下所示:
'data.frame': 468 obs. of 3 variables:
$ date : Date, format: "2019-04-11" "2019-04-12" "2019-04-13" ...
$ Object : chr "Object1" "Object2" "Object3" "Object 4" ...
$ daily_sales: int 1 257 178 177 255 240 231 214 193 174 ...
Run Code Online (Sandbox Code Playgroud)
我有一组需要垂直线的日期,它们存储在日期数组中,imp.dates
当我尝试绘制单个图时,vline它工作正常(使用以下代码):
ggplot(df, aes(x=date,
y=daily_sales,
colour=Object,
group=Object)) +
geom_line() +
geom_vline(aes(xintercept=imp.dates[1]),
linetype=4,
colour="black")
Run Code Online (Sandbox Code Playgroud)
然而,当我尝试做多个vlines
ggplot(df, aes(x=date,
y=daily_sales,
colour=Object,
group=Object)) +
geom_line() +
geom_vline(aes(xintercept=imp.dates),
linetype=4,
colour="black")
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Error: Aesthetics must be either length 1 or …Run Code Online (Sandbox Code Playgroud)