我的目标是用一种颜色突出StockValue值大于0.5,并使用另一种颜色用ggplot突出显示2002、2003、2012和2015年的StockValue。我成功地突出显示了高于0.5的值,但无法解决第二个问题。
我尝试过:
require(ggplot2)
require(reshape2)
df <- data.frame(Year = c(2001:2015),
StockValue = c(0.93, 0.32, 0.24, 0.53, 0.43, 0.53, 0.43, 0.58, 0.31, 0.52, 0.49, 0.27,0.34,0.48, 0.45))
df %>% ggplot(aes(x=Year,y=StockValue)) + geom_point(color = 'blue', shape = 18) + theme(legend.position="none") + ggtitle("Stock Value")
highlight <- df %>% filter(StockValue>=0.5)
df %>% ggplot(aes(x=Year,y=StockValue)) + geom_point(color = 'blue', shape = 18, size = 2.3) + geom_point(data=highlight, aes(x=Year,y=StockValue), color='red', shape=18) + theme(legend.position="none")
答案 0 :(得分:2)
最简单的方法可能是先创建要使用的数据。像这样:
df %>%
mutate(above = StockValue>=.5) %>%
mutate(year = Year %in% c(2002,2003,2012,2015)) %>%
mutate(comb = paste(above,year)) %>%
ggplot(aes(Year,StockValue,color = comb)) +
geom_point() +
scale_color_manual(values = c('blue','violet','black')) +
theme(legend.position = 'none')