2 votes

Définir des couleurs différentes dans geom_point pour les valeurs négatives et positives dans ggplot2

Étant donné un cadre de données comme suit :

df <- data.frame(city = c("bj", "sh", "gz", "sz"),
                 price = c(12, 7, 5, 6),
                 pct = c(-2.3, 5, -4, 4), stringsAsFactors=FALSE)

Dehors :

  city  price  pct
0   bj     12 -2.3
1   sh      7  5.0
2   gz      5 -4.0
3   sz      6  4.0

Je veux dessiner un graphique avec ggplot : barchart para city , point para pct mais je veux les valeurs négatives et positives de pct ont une couleur différente.

Comment puis-je faire cela dans ggplot2 ? Merci.

Code :

ggplot(df, aes(fill = city, y = price, x = city)) + 
    geom_bar(position = "dodge", stat = "identity", alpha = 0.5, fill = "#FF6666") +
    geom_point(data = df,  aes(x = 'city', y = 'pct'), size = 2)

4voto

Waldi Points 22249

Vous pouvez utiliser pct>0 en tant que couleur (0 ou 1 selon le signe de pct ) et transformer city dans un facteur :

ggplot(df, aes(fill = city, y = price, x = city)) + 
  geom_bar(position = "dodge", stat = "identity", alpha = 0.5, fill = "#FF6666") +
  geom_point(data = df,  aes(x = factor(city), y = pct ,color = pct>0, size = 2))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X