2016-05-08 4 views
1

Ich versuche, eine Dichtekurve für meine Daten mit dem folgenden Code zu machen:geom_density macht stabförmigen Graph

ggplot(velar_nonnasal_low_f, aes(x = F2_difference, linetype = type)) + 
    geom_density() + 
    ggtitle("Density of F2 difference for /æ, ɛ/ for females") + 
    xlab("F2 difference") + 
    scale_fill_manual(name = "Place of Articulation") 

Dieser Code fein gearbeitet hat, mit früherem Datenrahmen, aber jetzt produziert er die Handlung unten statt eine glatte Kurve. Ich entschuldige mich, wenn dies eine leicht zu beantwortende Frage ist (ich lerne immer noch R), aber ich kann einfach nicht herausfinden, warum ggplot die Daten auf diese Weise aufträgt.

enter image description here

Hier ist ein Code, so dass Sie einen kleinen Teil von dem, was wie meine Daten sehen wiedergeben können.

Edit: Hier ist reproduzierbarer Code meiner tatsächlichen Daten.

type <- c("coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal", "coronal") 
     F2_difference <- c(46.992662, 18.174776, -90.708617, -59.842787, -147.212234, -272.596601, 38.560577, 64.413318, -107.797167, -148.581689, -207.521093, 37.117600, -110.178964, 209.738062, 456.686906, 39.369545, -29.394699, -36.435841, 2.056190, -22.414031, 4.705579, -188.352557, -212.596306, 159.445017, -139.284470, -278.304356, -121.685889, -118.666014, 804.253078, -42.737883, 203.878428, -34.867516, -221.979230, -128.715072, 85.145217 

     velar_nonnasal_low_f <- data.frame (type, F2_difference) 
+0

Ich bekomme eine völlig andere glatte Kurve mit den von Ihnen bereitgestellten Daten. – Gopala

+0

Entschuldigung, ich dachte, es wäre etwas mit meinem Code, also habe ich nur ein kleines Beispiel mitgenommen. Mein gesamter Datensatz hat jetzt einen reproduzierbaren Code. – Lisa

+0

Mit den neuen Daten bekomme ich immer noch eine richtige Handlung. Welche Versionen von R und ggplot2 verwendest du? Vielleicht starte die Sitzung neu und versuche es. – Gopala

Antwort

1

Ich denke @navinkb ist richtig in seinem Kommentar. Um die Grafik zu replizieren Sie habe ich dies tat:

n <- 33 
type <- c(rep("coronal", n), 
      rep("labial", 35 - n)) 

F2_difference <- c(46.992662, 18.174776, -90.708617, -59.842787, -147.212234, -272.596601, 38.560577, 
        64.413318, -107.797167, -148.581689, -207.521093, 37.117600, -110.178964, 209.738062, 
        456.686906, 39.369545, -29.394699, -36.435841, 2.056190, -22.414031, 4.705579, -188.352557, 
        -212.596306, 159.445017, -139.284470, -278.304356, -121.685889, -118.666014, 804.253078, 
        -42.737883, 203.878428, -34.867516, -221.979230, -128.715072, 85.145217) 

velar_nonnasal_low_f <- data.frame (type, F2_difference) 

library(plotly) 
ggplot(velar_nonnasal_low_f, aes(x = F2_difference, linetype = type)) + 
    geom_density() + 
    ggtitle("Density of F2 difference for /æ, ɛ/ for females") + 
    xlab("F2 difference") + 
    scale_fill_manual(name = "Place of Articulation") 

ich dieses:

Modified Data

Aber wenn ich die Daten verwenden, Ihnen geteilt erhalte ich:

Original Data

Also vielleicht die Daten überprüfen?