我有一个数据集随着时间(日期)有两个变量(Tb和Ta)。看起来像这样:根据因子水平的阴影ggplot2背景
` Date Tb Ta Light
1 2015-02-15 01:13:00 36.103 22.751 nightime
2 2015-02-15 01:55:00 36.103 22.626 nightime
3 2015-02-15 02:37:00 35.605 22.626 nightime
4 2015-02-15 03:19:00 35.605 22.751 nightime
5 2015-02-15 04:01:00 36.103 23.001 nightime
6 2015-02-15 04:43:00 35.605 22.876 nightime`
我想在“Light”因素中为不同级别的阴影做阴影。所以'Light'中的'nightime'的所有点都会以灰色阴影,而'白天'会变成白色。事情是这样的:
有没有办法让geom_rect()
一个因子水平的工作?我需要所有的点编码为带有灰色背景阴影“被安排到” ......
我尝试以下基于Using ggplot2 in R, how do I make the background of a graph different colours in different regions?
ggplot() + geom_rect(data=tbdf, (aes(xmin=Date,
xmax=Date, ymin=min(Tb), ymax=max(Tb), fill=Light))) +
geom_line(data = tbdf, aes(x = Date, y = Tb)) +
geom_line(data = tbdf, aes(x = Date, y = Ta), colour='grey') +
xlab('Date') +
ylab('Temperature (°C)')
,并将其与传说为轻,但仍平时灰色阴影结束:
有什么建议?
我的意思是'aes(NULL,NULL)'不在你所关注的例子中,看起来很奇怪。我会摆脱这一点。 – Gregor
我没有尝试过,并删除了-0.5和+0.5的X最大和最小它仍然使它全部是一种颜色(Nightime之一)。我编辑了该帖子以将其删除。 –
如果你想用'dput()','dput(head(tbdf,20))'分享你的数据,那么复制/粘贴在你的POSIX日期时间里读取是一个真正的痛苦。还要确保您显示足够的数据,以便它不是全部的夜间。真正的解决方案可能是创建一个摘要数据框架,该框架每天都有过渡点,每天绘制2个矩形,而不是每个数据行的1个矩形。 – Gregor