在“geom_bar”绘图中设置“geom_hline”的长度
我有一个在“geom_bar”绘图中设置“geom_hline”的长度,r,time,ggplot2,stack,R,Time,Ggplot2,Stack,我有一个geom\u条图,我想设置geom\u线的长度 我有这个数据, set.seed(666) df <- data.frame( date = seq(Sys.Date(), len= 156, by="4 day")[sample(156, 26)], IndoorOutdoor = rep(c(-1,1), 13), #Change so there are only 26 rows Xmin = sample(90, 26, replace = T), Ymin
geom\u条
图,我想设置geom\u线
的长度
我有这个数据,
set.seed(666)
df <- data.frame(
date = seq(Sys.Date(), len= 156, by="4 day")[sample(156, 26)],
IndoorOutdoor = rep(c(-1,1), 13), #Change so there are only 26 rows
Xmin = sample(90, 26, replace = T),
Ymin = sample(90, 26, replace = T),
Zmin = sample(90, 26, replace = T)
)
df$XYZmin <- rowSums(df[,c("Xmin", "Ymin", "Zmin")])*df$IndoorOutdoor
df[,7:9] <- df[,3:5]*df[,2] #Adding the sign to each X/Y/Z
names(df)[7:9] <- paste0(names(df)[3:5],"p") #to differentiate from your X/Y/Z
require(ggplot2)
df.m <- melt(df[,c(1:2,6:9)], measure.vars=c("Xminp", "Yminp", "Zminp"))
df.m$pos <- c(as.Date("2013-04-15"), rep(Sys.Date(), (length(df.m$XYZmin)-1)))
df.m$foo <- 0
情节呢,
如果我尝试用pos
作为as.numeric
打印它
df.m$pos <- as.numeric(df.m$pos)
如何设置绿线的长度?您可以将
geom\u hline()
替换为geom\u段()
,并设置x
值的起始和结束位置
ggplot(df.m, aes(date, value, fill=variable)) +
geom_bar(position="stack", stat="identity", width=0.5) +
geom_segment(aes(x=min(pos),xend=max(pos),y=0,yend=0),colour="green")
如果您想更好地控制长度,请使用
geom\u段
。警告不是错误。别把两者混淆了!谢谢,说得好,这是一个警告。
df.m$pos <- as.numeric(df.m$pos)
Error: Invalid input: date_trans works with objects of class Date only
ggplot(df.m, aes(date, value, fill=variable)) +
geom_bar(position="stack", stat="identity", width=0.5) +
geom_segment(aes(x=min(pos),xend=max(pos),y=0,yend=0),colour="green")