2017-03-02 2 views
0

J'ai des données sur les états comportementaux qu'un groupe d'animaux peut avoir dans le temps. Il ressemble à:Tracer des états catégoriels en fonction du temps

state<-ceiling(runif(1000, 0, 3)) 
time<-ceiling(runif(1000,0,24)) 
ID<-ceiling(runif(1000,1,20)) 
df<-cbind(state,time,ID) 

Je suis déconcerté quant à la meilleure façon de visualiser cela et espérais quelques conseils. Peut-être qu'une carte de chaleur pourrait fonctionner mais je ne suis pas sûr de savoir comment coder ceci. Verbally, chaque état aurait une couleur différente et alors l'intensité de la couleur varierait selon combien de fois il s'est produit à un moment donné. Je ne pense pas qu'il soit essentiel de garder le temps comme un cours de temps ici.

Espoir vous pouvez aider

Cela devient à l'idée, mais il n'y a pas de sens dont les points ont les données les plus heatmap-like plot, but for categorical variables

+0

Vous pouvez vérifier https://joey711.github.io/phyloseq/plot_heatmap -examples.html – Enthusiast

Répondre

2

Quelque chose comme ça? Bien sûr, ne hésitez pas à changer les couleurs et autres joyeusetés:

enter image description here

Voici le code:

df %>% 
    as.data.frame() %>% 
    group_by(state, time) %>% 
    summarise(n = n()) %>% 
    ggplot(aes(time, y = factor(state), fill = n)) + 
    geom_raster() + 
    scale_fill_continuous('Count', low = 'yellow', high = 'darkgreen', guide = 'legend') + 
    scale_x_continuous(expand = c(0, 0), breaks = c(1,seq(0, 25, 5), 24)) + 
    ylab('State') + 
    xlab('Time') + 
    coord_fixed() + 
    theme(legend.position = 'top', 
      legend.key.height = unit(.2, 'cm')) 
+0

Salut, c'est génial et ça marche parfaitement sur mes vraies données. Merci beaucoup. Par la suite je me demandais s'il était possible d'assigner des couleurs différentes aux 3 états? –

+1

Voilà une question intéressante à laquelle j'aimerais trouver une réponse! Je vous suggère de l'ouvrir comme une nouvelle question, – GGamba