2016-05-03 9 views
0

Ich habe derzeit Daten, die mir Blutdruck nach Alter für diejenigen 10-18 sagen. Ich würde gerne ein Dichtediagramm für jedes Alter ähnlich einem Violinplot erstellen.Lineare Dichte Plots

Es wäre look like this, aber mit nur die Dichte Plots.

Der Schlüssel ist, um ein Histogramm für jedes Alter zu bekommen, dann kippen Sie es und zeichnen Sie es, wobei die x-Achse ist Alter und die y-Achse ist Blutdruck. Ich habe das Gefühl, dass ich das schon einmal gesehen habe, aber ich kann mich nicht erinnern, wo.

Danke für jede Hilfe!

+0

Bitte machen Sie ein reproduzierbares Beispiel: http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example. – tonytonov

Antwort

1

ich denke, das den Trick tun sollten:

# load libraris 
    library(ggplot2) 
    library(ggthemes) 

# load data 
    data(iris) 


# Plot 
    ggplot(data = iris) + 
    geom_density(aes(x=Sepal.Length), fill="red", color="red") + 
    facet_grid(.~Species) + 
    theme_minimal() + 
    coord_flip() 

enter image description here

Sie auch geom_violin verwenden:

ggplot(data = iris) + 
    geom_violin(aes(x=Species, y=Sepal.Length), fill="red", color="red") + 
    geom_jitter(aes(x=Species, y=Sepal.Length), fill="gray", color="gray") + 
    theme_minimal() 

enter image description here

In jedem Fall Ihre Variable auf Blut Druck entspricht Sepal.Length hier dargestellt, während Ihre Alterskategorie-Variable Species als factor() entspricht.

0

Der Schlüssel dazu kann die Kombination von ein paar Features sein:

  1. den Druck als x-Achse verwenden und dann die Koordinatenachse kippen.
  2. Verwenden Sie das Alter, um das Facit-Gitter davon abhängig zu machen. Denken Sie daran, das Alter vorher factor zu machen! Hier

ist ein minimales Beispiel mit einigen zufällig generierten Daten für Menschen zwischen 25 und 30 Jahre alt und Blutdruck zwischen 50 und 150 (keine Ahnung, wie realistisch das ist):

data <- data.frame(age=round(runif(1000, 25, 30)), pressure=round(runif(1000, 50, 150))) 
data$age <- factor(data$age) 

library(ggplot2) 
ggplot(data, aes(x=pressure)) + 
    geom_density() + 
    coord_flip() + 
    facet_grid(.~age) 

enter image description here