2016-09-14 4 views
2

J'ai un dataframe comme ci-dessouscomment faire les boxplots avec des points et des étiquettes?

G1 G2  G3   G4  group 
S_1 0 269.067 0.0817233 243.22 N 
S_2 0 244.785 0.0451406 182.981 N 
S_3 0 343.667 0.0311259 351.329 N 
S_4 0 436.447 0.0514887 371.236 N 
S_5 0 324.709 0 293.31 N 
S_6 0 340.246 0.0951976 393.162 N 
S_7 0 382.889 0.0440337 335.208 N 
S_8 0 368.021 0.0192622 326.387 N 
S_9 0 267.539 0.077784 225.289 T 
S_10 0 245.879 0.368655 232.701 T 
S_11 0 17.764 0 266.495 T 
S_12 0 326.096 0.0455578 245.6 T 
S_13 0 271.402 0.0368059 229.931 T 
S_14 0 267.377 0 248.764 T 
S_15 0 210.895 0.0616382 257.417 T 
S_16 0.0401525 183.518 0.0931699 245.762 T 
S_17 0 221.535 0.219924 203.275 T 

Maintenant, je veux faire un multiboxplot avec tous les 4 gènes dans les colonnes. Les 8 premières rangées sont pour les échantillons normaux et 9 rangées pour les échantillons tumoraux; pour chaque gène, je devrais être capable de faire deux boîtes à moustaches avec des étiquettes de tissus. Je suis capable de faire des boxplots individuels, mais comment dois-je mettre tous les 4 gènes dans une parcelle et aussi étiqueter le tissu pour chaque boîte à moustache et d'utiliser les points de diagramme. Y a-t-il un moyen facile de le faire? Je ne peux créer des tracés individuels qu'en utilisant les noms de lignes et de colonnes, mais je ne peux pas marquer les étiquettes en fonction des groupes de colonnes dans le tracé et également tracer les points avec le diagramme. Toute aide serait appréciée. Merci

Répondre

1

Vous ne savez pas ce que vous voulez dire avec des points de tableau, j'ai supposé que vous vouliez visualiser les points réels superposés sur les boîtes à moustaches. Est-ce que ce qui suit suffirait?

library(ggplot2) 
library(dplyr) 
library(reshape2) 

melt(df) %>% 
ggplot(aes(x = variable, y = value, col = group)) + 
geom_boxplot() + 
geom_jitter() 

df est la trame de données ci-dessus. Résultat:

enter image description here

+0

Juste pour poser une question, j'effectue cela sur une échelle logarithmique pour une résolution beaucoup mieux et a constaté que certains points sont sur l'autre intrigue qui signifie points de boîte verte en rose, alors dans ce cas, nous ne devons pas mettre à l'échelle le complot, si oui, qui devrait être idéal? –

+0

pouvez-vous s'il vous plaît me dire, n'est-ce pas une bonne idée de représenter les points de point sur la parcelle de chaque gène puisque certains d'entre eux sont dans d'autres groupes qui pourraient être un peu trompeurs. Quel genre de mise à l'échelle doit être appliqué ici? Dans un autre cas, je faisais le tracé des points, car la taille de l'échantillon dans chaque cas est inférieure à 20, il est donc préférable de les mettre. Qu'est-ce que tu as à dire? –

+0

Je ne suis pas sûr de ce que la valeur ajoutée représenterait le point sur le graphique, surtout avec des tas de points. Si vous voulez un complot plus sophistiqué que je vous suggérerais de regarder dans [les intrigues de pirates] (http://nathanieldphillips.com/2016/04/pirateplot-2-0-the-rdi-plotting-choice-of-r- pirates /) :) – thepule

2

avec facet_wrap:

head(df) 

    G1  G2  G3  G4 group 
S_1 0 269.067 0.0817233 243.220  N 
S_2 0 244.785 0.0451406 182.981  N 
S_3 0 343.667 0.0311259 351.329  N 
S_4 0 436.447 0.0514887 371.236  N 
S_5 0 324.709 0.0000000 293.310  N 
S_6 0 340.246 0.0951976 393.162  N 

library(reshape2) 
df <- melt(df) 

library(ggplot2) 
ggplot(df, aes(x = variable,y = value, group=group, col=group)) +  
facet_wrap(~variable, scales = 'free') + geom_boxplot() 

enter image description here