2017-05-19 5 views
0

Je souhaite créer des barres de menus groupées de base avec ggplot2 mais il semble exclure certaines données. Si j'examine mes données d'entrée, tout est là, mais certaines barres sont manquantes et il y a aussi des erreurs dans les barres d'erreur. J'ai essayé de convertir en plusieurs types de variables, regroupés, chargés à nouveau, tout enregistré en .csv et chargé tout nouveau ... Je ne sais pas ce qui ne va pas.Est-ce que ggplot2 exclut certaines données?

Voici mon code:

library(ggplot2) 

limits <- aes(ymax = DataCm$mean + DataCm$sd, 
      ymin = DataCm$mean - DataCm$sd) 


p <- ggplot(data = DataCm, aes(x = factor(DataCm$Zeit), y = factor(DataCm$mean) 
      )) 

p + geom_bar(stat = "identity", 
     position = position_dodge(0.9),fill =DataCm$group) + 
    geom_errorbar(limits, position = position_dodge(0.9), 
      width = 0.25) + 
    labs(x = "Time [min]", y = "Individuals per foodsource") 

C'est DataCm:

Zeit mean  sd group 
1 30 0.1 0.3162278  1 
2 60 0.0 0.0000000  2 
3 90 0.1 0.3162278  3 
4 120 0.0 0.0000000  4 
5 150 0.1 0.3162278  5 
6 180 0.1 0.3162278  6 
7 240 0.3 0.6749486  1 
8 300 0.3 0.6749486  2 
9 360 0.3 0.6749486  3 
10 30 0.1 0.3162278  4 
11 60 0.1 0.3162278  5 
12 90 0.2 0.4216370  6 
13 120 0.3 0.4830459  1 
14 150 0.3 0.4830459  2 
15 180 0.4 0.5163978  3 
16 240 0.3 0.4830459  4 
17 300 0.4 0.5163978  5 
18 360 0.4 0.5163978  6 
19 30 1.2 1.1352924  1 
20 60 1.8 1.6865481  2 
21 90 2.2 2.0976177  3 
22 120 2.2 2.0976177  4 
23 150 2.0 1.8856181  5 
24 180 2.3 1.9465068  6 
25 240 2.4 2.0655911  1 
26 300 2.1 1.8529256  2 
27 360 2.0 2.1602469  3 
28 30 0.2 0.4216370  4 
29 60 0.1 0.3162278  5 
30 90 0.1 0.3162278  6 
31 120 0.1 0.3162278  1 
32 150 0.0 0.0000000  2 
33 180 0.1 0.3162278  3 
34 240 0.1 0.3162278  4 
35 300 0.1 0.3162278  5 
36 360 0.1 0.3162278  6 
37 30 1.3 1.5670212  1 
38 60 1.5 1.5811388  2 
39 90 1.5 1.7159384  3 
40 120 1.5 1.9002924  4 
41 150 1.9 2.1317703  5 
42 180 1.9 2.1317703  6 
43 240 2.2 2.3475756  1 
44 300 2.4 2.3190036  2 
45 360 2.2 2.1499354  3 
46 30 2.1 2.1317703  4 
47 60 3.0 2.2110832  5 
48 90 3.3 2.1628171  6 
49 120 3.2 2.1499354  1 
50 150 3.4 2.6331224  2 
51 180 3.5 2.4152295  3 
52 240 3.7 2.6267851  4 
53 300 3.7 2.4060110  5 
54 360 3.8 2.6583203  6 

La sortie est: Output

Peut-être que vous pouvez me aider. Merci d'avance!

Meilleurs voeux, Benjamin

a résolu le problème: Je remodelés tout dans Excel et exportèrent une autre façon. La variable de groupe n'était pas non plus comme je le voulais. Maintenant, c'est corrigé, mais je ne peux pas vraiment vous dire pourquoi.

+2

Pouvez-vous être plus précis sur les erreurs que vous voyez? Qu'est-ce qui est différent de ce qui est attendu? – patrick

+2

Pour commencer, il ne devrait pas y avoir de 'DataCm $' dans le terme ggplot - l'objet de données est défini dans le premier argument et les colonnes sont ensuite adressées directement. – CMichael

+0

@CMichael: Bien sûr, je sais que c'était juste une autre mauvaise tentative de dépannage ... @ patrick: Comme vous pouvez le voir dans l'image de sortie il manque quelques barres (devrait être 6 pour chaque point de temps) et les barres d'erreur foiré. –

Répondre

0

Vos données semblent malformées. Je suppose que vous vouliez avoir 6 différentes group valeurs pour chaque point de temps, mais maintenant la variable group boucles un peu plus, et vous avez:

1 30 0.1 0.3162278  1 
... 
10 30 0.1 0.3162278  4 
... 
19 30 1.2 1.1352924  1 
... 
28 30 0.2 0.4216370  4 

geom_bar alors probablement omet les lignes qui ont une même moyenne et le temps. Bien que je ne sache pas pourquoi il choisit de le faire, vous devriez d'abord résoudre le problème group.

+0

Merci pour l'indice. C'était un pas dans la bonne direction, mais n'a toujours pas résolu le problème. Maintenant, j'ai tout remodelé dans Excel et l'ai exporté d'une autre manière. Ça marche! Mais je ne sais pas pourquoi ... –