使用 scale_x_discrete 或 scale_x_continuous 时找不到 R 对象
R object not found when using scale_x_discrete or scale_x_continuous
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=hour_mark,
y=avg_intensity,group=1))+
geom_line(color="red")+
geom_point()+
scale_x_discrete(labels=hour_mark)+
labs(title='Average Intensity Each Hour of the Day')+
xlab('Hours of Day')+
ylab('Average Intensity')
我想在 x 轴上表示一天中的所有 24 小时,所以我尝试使用定义的 x (hour_mark) scale_x_discrete 和 scale_x_continuous,但 R 不能找到对象:
Error in check_breaks_labels(breaks, labels): object 'hour_mark' not found
Traceback:
1. scale_x_discrete(labels = hour_mark)
2. discrete_scale(c("x", "xmin", "xmax", "xend"), "position_d",
. identity, ..., expand = expand, guide = guide, position = position,
. super = ScaleDiscretePosition)
3. check_breaks_labels(breaks, labels)
请帮忙!
两件事:
scale_x_discrete
需要一个离散值,您已经提供了一个带有数字列的连续值。我们可以使用 factor
强制执行此操作。 (请注意,虽然这在下面有效,但如果数据没有以 number-like 方式排序,那么我们对 factor
的调用可能需要使用 factor(., levels=)
来显式调用。)
scale_*
函数不做non-standard求值,和geom_*
函数一样,需要显式传递vectors/objects。从技术上讲,我们在这里不需要这个,但我会包括可以做些什么来获得更多控制(注释掉)。
ggplot(data=avg_int_hourly,
aes(x=factor(hour_mark),
y=avg_intensity,group=1))+
geom_line(color="red")+
geom_point()+
## don't really need this, since the default action for discrete is
## to show all of them on the axis
# scale_x_discrete(breaks=avg_int_hourly$hour_mark, labels=avg_int_hourly$hour_mark)+
labs(title='Average Intensity Each Hour of the Day')+
xlab('Hours of Day')+
ylab('Average Intensity')
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=hour_mark,
y=avg_intensity,group=1))+
geom_line(color="red")+
geom_point()+
scale_x_discrete(labels=hour_mark)+
labs(title='Average Intensity Each Hour of the Day')+
xlab('Hours of Day')+
ylab('Average Intensity')
我想在 x 轴上表示一天中的所有 24 小时,所以我尝试使用定义的 x (hour_mark) scale_x_discrete 和 scale_x_continuous,但 R 不能找到对象:
Error in check_breaks_labels(breaks, labels): object 'hour_mark' not found
Traceback:
1. scale_x_discrete(labels = hour_mark)
2. discrete_scale(c("x", "xmin", "xmax", "xend"), "position_d",
. identity, ..., expand = expand, guide = guide, position = position,
. super = ScaleDiscretePosition)
3. check_breaks_labels(breaks, labels)
请帮忙!
两件事:
scale_x_discrete
需要一个离散值,您已经提供了一个带有数字列的连续值。我们可以使用factor
强制执行此操作。 (请注意,虽然这在下面有效,但如果数据没有以 number-like 方式排序,那么我们对factor
的调用可能需要使用factor(., levels=)
来显式调用。)scale_*
函数不做non-standard求值,和geom_*
函数一样,需要显式传递vectors/objects。从技术上讲,我们在这里不需要这个,但我会包括可以做些什么来获得更多控制(注释掉)。
ggplot(data=avg_int_hourly,
aes(x=factor(hour_mark),
y=avg_intensity,group=1))+
geom_line(color="red")+
geom_point()+
## don't really need this, since the default action for discrete is
## to show all of them on the axis
# scale_x_discrete(breaks=avg_int_hourly$hour_mark, labels=avg_int_hourly$hour_mark)+
labs(title='Average Intensity Each Hour of the Day')+
xlab('Hours of Day')+
ylab('Average Intensity')