Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R和ggplot:对分类变量的颜色进行着色_R_Ggplot2 - Fatal编程技术网

R和ggplot:对分类变量的颜色进行着色

R和ggplot:对分类变量的颜色进行着色,r,ggplot2,R,Ggplot2,我想做一个图表,表示一周中每天每小时发生事件的频率。如何更改一周中某一天的颜色?我想在周末前后从黑色改为红色 weekday_hour_pickup <- my_data %>% mutate(hour_pick = hour(new_pickup))%>% group_by(hour_pick, weekday) %>% count() %>% ggplot(aes(hour_pick, n, color = w

我想做一个图表,表示一周中每天每小时发生事件的频率。如何更改一周中某一天的颜色?我想在周末前后从黑色改为红色

  weekday_hour_pickup <- my_data %>%
      mutate(hour_pick = hour(new_pickup))%>%
      group_by(hour_pick, weekday) %>%
      count() %>%
      ggplot(aes(hour_pick, n, color = weekday)) +
      geom_line(size = 1.5) +
      labs(x = "hour of the day", y = "count")

  plot(weekday_hour_pickup)
weekday\u hour\u pickup%
变异(小时拾取=小时(新拾取))%>%
分组依据(小时、工作日)%>%
计数()%>%
ggplot(aes(小时,n,颜色=工作日))+
几何尺寸线(尺寸=1.5)+
实验室(x=“一天中的小时”,y=“计数”)
绘图(工作日/小时/取货)

这是一个很好的选项,可以使您的值描述为具有梯度

# call libraries
library(dplyr)
library(ggplot2)

# define weekdays
weekdays <- c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")

# define 7 colours from black to red
colours  <- scales::seq_gradient_pal(low = "#000000", high = "#ff0000", space = "Lab")(1:7/7)

# create values for scale colour manual
values <- setNames(colours, weekdays)

# create fake data
data <- tibble(hour_pick = rep(1:24, 7), 
               n         = rnorm(7*24) + rep(1:7, each = 24), 

               # weekday must be a factor if you want your legend to be sorted!
               weekday   = factor(rep(weekdays, each = 24), levels = weekdays, ordered = TRUE))

ggplot(data) +
  geom_line(aes(x = hour_pick, y = n, colour = weekday)) +
  theme_light() +
  scale_colour_manual(values = values)
#调用库
图书馆(dplyr)
图书馆(GG2)
#定义工作日

工作日首先,模拟数据的外观

TIMES = seq(from=mdy_hm("May 11, 1996 12:05"),
to=mdy_hm("May 18, 1996 12:05"),length.out=10000)

days.of.week <- weekdays(as.Date(4,"1970-01-01",tz="GMT")+0:6)
n = 1000
set.seed(100)
i = sample(1:length(TIMES),n)
my_data <- data.frame(
new_pickup=TIMES[i],
weekday = weekdays(TIMES[i])
)
TIMES=seq(from=mdy_hm(“1996年5月11日12:05”),
to=mdy_hm(“1996年5月18日12:05”),长度为10000)

每周天数添加
scale\u color\u手册(…,values,美学=“color”)
并在
values
中写下您想要的颜色也许这可以回答您的问题:scale\u fill\u gradient(low=“black”,high=“red”),您应该提供变量my\u数据的样本
my_data$weekday <- factor(my_data$weekday,levels=days.of.week)
COLS <- alpha(colorRampPalette(c("black","firebrick"))(7),0.6)
names(COLS) <-  days.of.week
weekday_hour_pickup <- my_data %>%
      mutate(hour_pick = hour(new_pickup))%>%
      group_by(hour_pick, weekday) %>%
      count() %>%
      ggplot(aes(hour_pick, n, color = weekday)) +
      geom_line(size = 1) +
      labs(x = "hour of the day", y = "count")+
      scale_color_manual(values=COLS) + 
      theme_bw()