2016-12-08 5 views
0

ich mich gefragt, ob möglichem Diagramm von ähnlichen Daten-Set zu erstellen ist, unten wie Datentabelle:erstellen Diagramm in R

col0      col1      col2   col3 
name      <NA>      <NA>   <NA>  
name cat, centipede, milipede, snail, flay, worm cat   vertebrates  
name cat, centipede, milipede, snail, flay, worm centipede arthropods  
name cat, centipede, milipede, snail, flay, worm milipede  arthropods  
name cat, centipede, milipede, snail, flay, worm snail  mollusc  
name cat, centipede, milipede, snail, flay, worm fly   insect  
name cat, centipede, milipede, snail, flay, worm worm   invertebrates 

und Diagramm mit R erstellen, die unter mehr oder weniger ähnlich Abbildung wäre:

enter image description here

+1

Versuchen Sie etwas wie 'foodweb' Paket. –

+1

'DiagrameR',' networkD3' und ein paar andere dieser Art können solche Diagramme erstellen, aber wo ist diese Hierarchie in diesem Datenausschnitt dargestellt? – hrbrmstr

+0

die Daten, mit denen ich arbeite, haben keine Hierarchie, so dass R-Diagramm selbst Wert wie "Wirbeltiere" und "wirbellose Tiere" annehmen sollte, gehen unten wie Bild unten –

Antwort

1

Try IGRAPH mit folgenden df Start:

library(igraph) 
df 
    col0         col1   col2   col3 
1 name         <NA>   <NA>   <NA> 
2 name cat,centipede,milipede,snail,flay,worm vertebrates  animal 
3 name cat,centipede,milipede,snail,flay,worm invertebrates  animal 
4 name cat,centipede,milipede,snail,flay,worm   cat vertebrates 
5 name cat,centipede,milipede,snail,flay,worm  centipede arthropods 
6 name cat,centipede,milipede,snail,flay,worm  milipede arthropods 
7 name cat,centipede,milipede,snail,flay,worm arthropods invertebrates 
8 name cat,centipede,milipede,snail,flay,worm  mollusc invertebrates 
9 name cat,centipede,milipede,snail,flay,worm   snail  mollusc 
10 name cat,centipede,milipede,snail,flay,worm  insect invertebrates 
11 name cat,centipede,milipede,snail,flay,worm   fly  insect 
12 name cat,centipede,milipede,snail,flay,worm   worm invertebrates 

df <- df[df$col1 != '<NA>',] 
species <- union(df$col3, df$col2) 
df <- df[c('col3', 'col2')] 
names(df) <- c('from', 'to') 
g <- graph.data.frame(df, directed = TRUE, vertices = species) 
plot(g,vertex.size=2, vertex.label.dist=0.5, vertex.color="cyan", 
    edge.arrow.size=0.5, layout=layout.reingold.tilford(g, root='animal')) 

enter image description here