2016-09-14 3 views
2

У меня есть dataframe, как показано нижекак сделать ящики с точками и этикетками?

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 

Теперь я хочу сделать multiboxplot со всех 4-х генов в колонках. Первые 8 рядов для нормальных образцов, остальные 9 рядов - образцы опухоли, поэтому для каждого гена я должен иметь возможность сделать 2 ящика с метками тканей. Я могу сделать отдельные коробки, но как я должен поместить все 4 гена в один сюжет, а также пометить ткань для каждого ящика и использовать стричковые точки. Есть ли простой способ сделать это? Я могу делать только отдельные графики, используя имена строк и столбцов, но не могу пометить метки на основе групп столбцов на графике, а также нарисовать точки с помощью стрига. Любая помощь будет оценена. Спасибо

ответ

1

Не уверен, что вы имеете в виду со стричковыми точками, я предположил, что вы хотели визуализировать фактические точки, наложенные на ящики. Было бы достаточно?

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

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

Где df является приведенной выше рамкой данных. Результат:

enter image description here

+0

Просто задать еще один вопрос, я выполнил это на логарифмической шкале на гораздо более высокой разрешающей способности и обнаружили, что некоторые точки находятся на другой участок, который означает точки зеленого квадрата в розовом, поэтому в этом случае нам не нужно масштабировать график, если это так, что должно быть идеальным? –

+0

Не могли бы вы рассказать мне, не рекомендуется ли представлять точки точки над графиком каждого гена, так как некоторые из них находятся в других группах, которые могут быть немного обманчивыми. Какое масштабирование должно применяться здесь? В другом случае я делал график точек, так как размер выборки в каждом случае ниже 20, поэтому их лучше разместить. Что вы можете сказать? –

+0

Я не уверен, какая добавленная стоимость будет представлять точку на графике, особенно с множеством точек. Если вам нужен более сложный сюжет, чем я предлагаю вам заглянуть в [пиратские сюжеты] (http://nathanieldphillips.com/2016/04/pirateplot-2-0-the-rdi-plotting-choice-of-r- пираты /) :) – thepule

2

с 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

Смежные вопросы