我使用以下代码(从堆栈溢出,感谢社区!)来绘制不同群体随时间的比例。
library(tidyverse)
df %>%
mutate(date = as.POSIXct(date)) %>% #convert date to date
group_by(group, date) %>% #group
summarise(prop = sum(outcome=="1")/n()) %>% #calculate proportion
ggplot()+
geom_line(aes(x = date, y = prop, color = group))+
theme_classic()+
geom_point(aes(x = date, y = prop, color = group))
使用的样本数据框是:
date <- c("2000-05-01", "2000-05-01", "2000-05-01", "2000-05-02", "2000-05-02", "2000-05-02", "2000-05-02", "2000-05-03", "2000-05-03", "2000-05-03", "2000-05-04", "2000-05-04")
outcome <- c("1", "0", "0", "0","1","1","0", "1","1","0", "1","0")
group <- c("1", "2", "3", "2", "1", "1", "2", "3", "2", "1", "1", "3")
df <- as.data.frame(cbind(date, outcome, group))
打印折线图,我想更改每个组的自动指定颜色,但无法弄清楚如何。有人可以帮我这个吗?
非常感谢提前!
编辑:我还想为群组添加手动标签并更改图例标题。
答案 0 :(得分:3)
使用ggplot2中的scale_color_*()
函数。如果要指定特定颜色,请使用scale_color_manual()
。您可以为values =
参数提供命名向量,以设置该颜色组的特定颜色值,并为labels =
参数设置图例中的自定义文本:
ggplot(...) +
scale_color_manual(values = c('1' = 'yellow', '2' = 'orange', '3' = 'black'),
labels = c('1' = 'fish', '2' = 'cats', '3' = 'dogs'))
scale_color_brewer()
功能允许您从设计和测试离散数据的设置选项板中进行选择。如果你不需要特定的颜色,这些调色板通常会使你的阴谋比你任意选择颜色时更清晰。
要修改图例,请使用guides()
功能:
ggplot(...) +
guides(color = guide_legend(title = 'Animal Kinds:'),
shape = guide_legend(title = 'Food Type:'))
这使您可以在一个地方控制所有传说。您可以为图例的显示方式指定标题和几乎所有可视参数。有关您可以在?guide_legend
guide_legend()
答案 1 :(得分:0)
参考您关于更改标题的评论:修改标题的最简单方法是使用
F