如何根据一天中 24 小时的 x 轴时间更改背景颜色?
How do I change the colors of my background based on time of day in x-axis on a 24 hour basis?
hour_mark avg_intensity
<int> <dbl>
0 2.1295503
1 1.4190782
2 1.0439443
3 0.4437299
4 0.6330472
5 4.9506438
6 7.7712137
7 10.7336198
8 14.6680988
9 15.3877551
10 17.6437029
11 16.9212513
12 19.8470716
13 18.7752443
14 18.8686211
15 15.5846995
16 17.7166483
17 21.6556291
18 21.9216336
19 21.3852097
20 14.3399558
21 12.0729282
22 9.0630531
23 4.9966777
ggplot(data=avg_int_hourly,
aes(x=factor(hour_mark),
y=avg_intensity,group=1))+
geom_line(color="red")+
geom_point()+
labs(title='Average Intensity Each Hour of the Day')+
xlab('Hours of Day')+
ylab('Average Intensity')
上面的图表没有问题,但现在我想根据一天中的时间更改背景颜色:0-6 = 紫色,6-19 = 橙色,20-23 = 紫色
所以,我希望它看起来像(能够调整不透明度对我来说也是必要的):
如果可能的话,我希望有一种方法可以添加两种不同颜色的图例,以注明它们代表图表右侧或顶部的夜晚和白天。
我试过类似的东西,但我不知道我在做什么:
我们可以使用 geom_rect
:
library(tidyverse)
library(scales)
ggplot(data=avg_int_hourly,
aes(x=factor(hour_mark),
y=avg_intensity,group=1))+
geom_line(color="red")+
geom_point()+
geom_rect(aes(xmin=0,xmax=7,ymin=0,ymax=Inf),fill="blueviolet",alpha=0.05)+
geom_rect(aes(xmin=7,xmax=21,ymin=0,ymax=Inf),fill="pink",alpha=0.05)+
geom_rect(aes(xmin=21,xmax=24,ymin=0,ymax=Inf),fill="blueviolet",alpha=0.05)+
labs(title='Average Intensity Each Hour of the Day')+
xlab('Hours of Day')+
ylab('Average Intensity')+
theme_minimal()
hour_mark avg_intensity
<int> <dbl>
0 2.1295503
1 1.4190782
2 1.0439443
3 0.4437299
4 0.6330472
5 4.9506438
6 7.7712137
7 10.7336198
8 14.6680988
9 15.3877551
10 17.6437029
11 16.9212513
12 19.8470716
13 18.7752443
14 18.8686211
15 15.5846995
16 17.7166483
17 21.6556291
18 21.9216336
19 21.3852097
20 14.3399558
21 12.0729282
22 9.0630531
23 4.9966777
ggplot(data=avg_int_hourly,
aes(x=factor(hour_mark),
y=avg_intensity,group=1))+
geom_line(color="red")+
geom_point()+
labs(title='Average Intensity Each Hour of the Day')+
xlab('Hours of Day')+
ylab('Average Intensity')
上面的图表没有问题,但现在我想根据一天中的时间更改背景颜色:0-6 = 紫色,6-19 = 橙色,20-23 = 紫色
所以,我希望它看起来像(能够调整不透明度对我来说也是必要的):
如果可能的话,我希望有一种方法可以添加两种不同颜色的图例,以注明它们代表图表右侧或顶部的夜晚和白天。
我试过类似的东西,但我不知道我在做什么:
我们可以使用 geom_rect
:
library(tidyverse)
library(scales)
ggplot(data=avg_int_hourly,
aes(x=factor(hour_mark),
y=avg_intensity,group=1))+
geom_line(color="red")+
geom_point()+
geom_rect(aes(xmin=0,xmax=7,ymin=0,ymax=Inf),fill="blueviolet",alpha=0.05)+
geom_rect(aes(xmin=7,xmax=21,ymin=0,ymax=Inf),fill="pink",alpha=0.05)+
geom_rect(aes(xmin=21,xmax=24,ymin=0,ymax=Inf),fill="blueviolet",alpha=0.05)+
labs(title='Average Intensity Each Hour of the Day')+
xlab('Hours of Day')+
ylab('Average Intensity')+
theme_minimal()