web-dev-qa-db-fra.com

Combiner des points avec des lignes avec ggplot2

Je voudrais tracer une série chronologique qui ressemble à ceci:

enter image description here

avec quoi je trace:

qplot(Jahr, Wert, data=tu, group = Geschlecht, color = Altersgr) + facet_grid(Geschlecht ~ Land)

Mes données ressemblent à ceci:

  Land   Altersgr Geschlecht Jahr  Wert
1   DE    < 20 J.          m 2000  13.0
2   DE  20-<65 J.          m 2000  25.7
3   DE     65+ J.          m 2000  70.1
4   DE  65-<80 J.          m 2000  44.2
5   DE     80+ J.          m 2000 213.5
6   BB    < 20 J.          m 2000  26.8

Tout va bien jusqu'à présent. Mais je dois connecter les points correspondants (même couleur) avec une ligne. Je ne savais pas comment faire ça. Si j'utilise geom_line () j'ai obtenu ce résultat:

enter image description here

Ce qui n'est pas ce que je veux ... J'ai juste l'impression d'oublier quelque chose ...

Aucune suggestion? Merci pour votre aide.

29
Dominik

Vous constaterez peut-être que l'utilisation du "groupe" aes vous aidera à obtenir le résultat souhaité. Par exemple:

tu <- expand.grid(Land       = gl(2, 1, labels = c("DE", "BB")),
                  Altersgr   = gl(5, 1, labels = letters[1:5]),
                  Geschlecht = gl(2, 1, labels = c('m', 'w')),
                  Jahr       = 2000:2009)

set.seed(42)
tu$Wert <- unclass(tu$Altersgr) * 200 + rnorm(200, 0, 10)

ggplot(tu, aes(x = Jahr, y = Wert, color = Altersgr, group = Altersgr)) + 
  geom_point() + geom_line() + 
  facet_grid(Geschlecht ~ Land)

Ce qui produit l'intrigue trouvée ici:

enter image description here

41
Peter

L'exemple suivant utilisant l'ensemble de données iris fonctionne correctement:

dat = melt(subset(iris, select = c("Sepal.Length","Sepal.Width", "Species")),
      id.vars = "Species")
ggplot(aes(x = 1:nrow(iris), y = value, color = variable), data = dat) +  
      geom_point() + geom_line()

enter image description here

12
Paul Hiemstra