J'utilise les commandes suivantes pour produire un nuage de points avec gigue:
ddf = data.frame(NUMS = rnorm(500), GRP = sample(LETTERS[1:5],500,replace=T))
library(lattice)
stripplot(NUMS~GRP,data=ddf, jitter.data=T)
Je veux ajouter des boxplots sur ces points (un pour chaque groupe). J'ai essayé de chercher mais je ne trouve pas de code traçant tous les points (et pas seulement les valeurs aberrantes) et avec une gigue. Comment puis-je résoudre ça. Merci de votre aide.
Pour ce faire dans ggplot2
, Essayez:
ggplot(ddf, aes(x=GRP, y=NUMS)) +
geom_boxplot(outlier.shape=NA) + #avoid plotting outliers twice
geom_jitter(position=position_jitter(width=.1, height=0))
Évidemment, vous pouvez ajuster les arguments de largeur et de hauteur de position_jitter()
à votre guise (bien que je recommanderais height=0
Car le tremblement de la hauteur rendra votre tracé inexact).
J'ai écrit une fonction R appelée spreadPoints () dans un package plotteR
. Le package peut être installé directement dans votre bibliothèque R à l'aide du code suivant:
install.packages("devtools")
library("devtools")
install_github("JosephCrispell/basicPlotteR")
Pour l'exemple fourni, j'ai utilisé le code suivant pour générer l'exemple de figure ci-dessous.
ddf = data.frame(NUMS = rnorm(500), GRP = sample(LETTERS[1:5],500,replace=T))
boxplot(NUMS ~ GRP, data = ddf, lwd = 2, ylab = 'NUMS')
spreadPointsMultiple(data=ddf, responseColumn="NUMS", categoriesColumn="GRP",
col="blue", plotOutliers=TRUE)
C'est un travail en cours (le manque de formule en entrée est maladroit!) Mais il fournit une méthode non aléatoire pour répartir les points sur l'axe X qui se double d'un violon comme un résumé des données. Jetez un oeil à la source code , si vous êtes intéressé.
Pour une solution lattice
:
library(lattice)
ddf = data.frame(NUMS = rnorm(500), GRP = sample(LETTERS[1:5], 500, replace = T))
bwplot(NUMS ~ GRP, ddf, panel = function(...) {
panel.bwplot(..., pch = "|")
panel.xyplot(..., jitter.x = TRUE)})
Le symbole de point médian par défaut a été remplacé par une ligne avec pch = "|"
. D'autres propriétés de la boîte et des moustaches peuvent être ajustées avec box.umbrella
Et box.rectangle
Via la fonction trellis.par.set()
. La quantité de gigue peut être ajustée via une variable nommée factor
où factor = 1.5
L'augmente de 50%.