我正在处理一些相当精细的一些室内和室外活动情节,而我有点卡住了。我想在我的情节的geom_segment
步骤中添加(Xmin
,Ymin
和Zmin
)在室内/室外花费的分钟数(参见下文)。目前仅有着色Zmin
(使用一个连续变量,这是有点关闭)。ggplot2,geom_segment的颜色段
我粘贴了所有的代码,以防其他人想要构建类似的东西,我最初的启发是this blog post。
任何帮助将不胜感激,谢谢!
df <- data.frame(
date = seq(Sys.Date(), len= 156, by="4 day")[sample(156, 26)],
action = paste('Then', LETTERS[1:13], 'happed, which was not related to', LETTERS[14:26]),
IndoorOutdoor = rep(c(-1,1), 13),
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
# install.packages("ggplot2", dependencies = TRUE)
require(ggplot2)
# step 1
plot <- ggplot(df,aes(x=date,y=0))
# step 2, this is where I want to add 'more' color
plot <- plot + geom_segment(aes(y=0,yend=XYZmin,xend=date, colour= Zmin))
# The text is added as follows
plot <- plot + geom_text(aes(y=XYZmin,label=paste(action, '\n this happed on ', date)),size=2.5,hjust=-.01, vjust=-.01, angle = 35)
# points at the end of the line segments
plot <- plot + geom_point(aes(y=XYZmin))
# #raw a vertical line
plot <- plot + geom_hline(y=0,size=1,color='purple')
#drawing the actual arrow
# plot <- plot + geom_segment(x=2011.4,xend=2012.2,y=.2,yend=0,color='purple',size=1) + geom_segment(x=2011.4,xend=2012.2,y=-.2,yend=0,color='purple',size=1)
plot <- plot + theme(axis.text.y = element_blank()) + ylab('') + xlab('')
plot + labs(title = "Timeline for when what happened")
“Zmin”映射作为一个连续变量以可定义的方式着色。你想如何将三个数字映射到单一色阶?如果它们是离散的,我可以看到一个映射到它们之间的相互作用,但是这对连续变量没有意义。 – 2013-03-11 23:32:46
@BrianDiggs,谢谢你回复我的问题。这是我的表述不准确。我设想了一个独立版本的'Xmin','Ymin'和'Zmin',并用三种不同的颜色将各个部分着色。那有意义吗? – 2013-03-11 23:37:57
@BrianDiggs,像[这些细分市场](http://i.stack.imgur.com/78BKj.png)或像[此行](http://3.bp.blogspot.com/-N7UsdR5vws8/T9Ezi4MQU4I/ AAAAAAAAAA8/oNq1iNZtq0E/S1600/lineWithDifferentColorsAndSize.JPG)。请让我知道这是否回答你的问题。如果不是,我很乐意尝试在我的情节中说明它。 – 2013-03-11 23:41:18