我试图绘制平均每小时使用ggplot显示平均自行车租金数量,如下图R所示。由于我的工作日是数据中的数字,因此将文本图例作为数字给出。
ggplot(bike_share_train, aes(x=hour, y=count, color=day))+
geom_point(data = day_summary_by_hour, aes(group = day))+
geom_line(data = day_summary_by_hour, aes(group = day))+
ggtitle("Bikes Rent By Weekday")+scale_colour_hue('Weekday')
我想将这些数字更改为工作日名称,我尝试使用下面的命令,但ggplot中缺少图例。请让我知道如何解决这个问题。
ggplot(bike_share_train, aes(x=hour, y=count, color=day))+geom_point(data = day_summary_by_hour, aes(group = day)) +
geom_line(data = day_summary_by_hour, aes(group = day))+
ggtitle("Bikes Rent By Weekday")+
scale_colour_hue('Weekday', breaks = levels(bike_share_train$day), labels=c('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'))
答案 0 :(得分:1)
我真诚地向大家道歉,因为我的错误。我从datetime值中提取了工作日,小时,但忘记将数据类型从char更改为这些字段的factor。所以,在ggplot中发布。我更改了数据类型并检查了ggplot。现在传说正在出现。
答案 1 :(得分:1)
尽管OP找到了解决方案,但是当每个小组仅包含一个观察时,我提出了另一种方法。
library(ggplot2)
# create some sample data
bike_share_data<-data.frame(hour = c(1.5,2.3,1.3,2.2,1.5),
count = c(21,26,30,15,20),
day = c("1","2","3","4","5"))
head(bike_share_data)
ggplot(bike_share_data, aes(x=hour, y=count, color=day))+
geom_point(data = bike_share_data, aes(group = 1))+
geom_line(data = bike_share_data, aes(group = 1))+
ggtitle("Bikes Rent By Weekday")+
scale_colour_hue('Weekday',
breaks = levels(bike_share_data$day),
labels=c('Monday','Tuesday','Wednesday','Thursday','Friday')
)