2017-06-15 2 views
0

J'ai une base de données dans laquelle j'ai des valeurs de rappel pour 2 groupes de données différents. J'ai fait un diagramme de densité en utilisant le code ci-dessous, mais je suis confus au sujet de comment il ressemble. Pour un groupe (GE dans ce cas) le rappel est très élevé (toujours 1), dans le graphique je prévois un pic pointu et comparativement plus élevé (par rapport au groupe Epi) sur l'axe des x = 1 alors que ce n'est pas le cas graphique (voir photo ci-jointe).Comment obtenir un "densityplot" droit dans ggplot2?

commande I utilisé:

ggplot(epiGE, aes(x=Rec)) + geom_density(aes(group=Class, colour=Class, fill=Class), alpha=0.3) + theme(axis.title.x=element_blank(), axis.title.y=element_blank()) 

DensityPlot

J'ai aussi essayé histogramme de ggplot2 mais aussi à l'axe x = 1 je ne suis pas la bonne distribution de GE groupe, comme barplot montre que les valeurs dans Epi groupe ayant Recall=1 sont plus par rapport au groupe GE.

ggplot(epiGE, aes(x=Rec)) + geom_histogram(aes(group=Class, colour=Class, fill=Class), alpha=0.3) + theme(axis.title.x=element_blank(), axis.title.y=element_blank()) 

BarPlot

Quelqu'un peut-il s'il vous plaît me guider ce que je fais mal ici ?? Je vous remercie.

Voici mon dput de données:

> dput(epiGE) 
structure(list(Class = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 
2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 
2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 
2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("Epi", "GE"), class = "factor"), 
    Rec = c(1, 1, 0.928571428571429, 1, 1, 1, 0.625, 1, 0.935897435897436, 
    1, 0.911764705882353, 1, 0.790697674418605, 1, 0.891891891891892, 
    1, 1, 1, 0.98019801980198, 1, 0.949367088607595, 1, 0.877551020408163, 
    1, 0.944444444444444, 1, 1, 1, 0.955445544554455, 1, 0.5, 
    1, 0.170731707317073, 1, 0.513513513513513, 1, 0, 1, 0.9, 
    1, 0.875, 1, 0.884615384615385, 1, 0.5, 1, 0.9, 1)), .Names = c("Class", 
"Rec"), class = "data.frame", row.names = c(NA, -48L)) 

Répondre

1

Ceci est lié à la bande passante de lissage. Vous pouvez utiliser l'argument adjust pour ajuster la bande passante. Voici un exemple.

ggplot(epiGE, aes(x=Rec)) + 
    geom_density(aes(group=Class, colour=Class, fill=Class), alpha=0.3, adjust = 1/10) + 
    theme(axis.title.x=element_blank(), axis.title.y=element_blank()) 

Set adjust à 1/10 signifie que l'aide 1/10 de la bande passante par défaut.

+0

Merci d'avoir pris le temps d'essayer. J'ai déjà essayé ce paramètre, mais si vous voyez le graphique, le pic rouge (représentant le groupe Epi) est au dessus du pic vert (représentant le groupe GE) que j'interagis car la classe Epi a plus de points de données avec Recall = 1 par rapport à GE classe et ce n'est pas le cas ici (si vous voyez les valeurs de rappel pour les deux classes). – Newbie

+0

Il y a seulement 7 ou 8 valeurs appartenant à la classe Epi qui a Recall dans la gamme de 0.8 à 1 alors que toutes les valeurs dans la classe GE ont un Recall = 1 donc dans ce cas la hauteur du pic représentant les valeurs GE devrait être plus élevée hauteur du pic (dans la région 0.9 - 1) représentant les valeurs Epi. Mais ce que nous voyons dans l'intrigue est contraire. – Newbie

+0

Que diriez-vous de 'adjust = 1/50'? Je me sens comme l'intrigue de densité peut ne pas être l'intrigue la plus appropriée pour réaliser ce que vous voulez. – www