在ggplot中缺少传奇

时间:2017-09-22 13:39:04

标签: r ggplot2

我试图绘制平均每小时使用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')

enter image description here

我想将这些数字更改为工作日名称,我尝试使用下面的命令,但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'))

enter image description here

2 个答案:

答案 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')
  )

Bike Rent by weekday