Mon objectif est de mettre en évidence la valeur StockValue supérieure à 0,5 avec une couleur et StockValue des années 2002, 2003, 2012 et 2015 en utilisant une autre couleur avec ggplot. J'ai réussi à mettre en évidence la valeur supérieure à 0,5 mais je n'ai pas pu résoudre le deuxième problème.

J'ai essayé:

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")

enter image description here

1
Ravi Saroch 16 oct. 2020 à 08:34

1 réponse

Meilleure réponse

Le moyen le plus simple est peut-être de créer les données que vous souhaitez utiliser en premier. Ainsi:

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

enter image description here

2
Magnus Nordmo 16 oct. 2020 à 05:50