2016-09-14 12 views
2

나는 이제 열에서 모든 4 개 유전자를 가진 multiboxplot을 만들고 싶어도트 점과 레이블로 boxplots을 만드는 방법은 무엇입니까?

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 

아래로 dataframe 있습니다. 처음 8 행은 정상적인 샘플을위한 나머지 9 행은 종양 샘플이므로 각 유전자에 대해 조직의 레이블을 가진 2 상자 플롯을 만들 수 있어야합니다. 개인 boxplots을 만들 수 있지만 어떻게 모든 음모를 하나의 음모에 넣고 각 boxplots의 조직에 라벨을 붙이고 stripchart 포인트를 사용해야합니까? 그것을 할 수있는 쉬운 방법이 있습니까? 행과 열 이름을 사용하여 개별 플롯 만 만들 수 있지만 플롯의 열 그룹을 기반으로 레이블을 표시하거나 스트립 차트로 점을 그릴 수는 없습니다. 어떤 도움을 주시면 감사하겠습니다. 감사합니다

답변

1

당신이 stripchart 포인트와 무슨 뜻인지 확실하지 않아요, 당신은 boxplots에 중첩 된 실제 포인트를 시각화 싶어요. 다음과 같이 충분합니까?

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

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

여기에서 df은 위의 데이터 프레임입니다. 결과 : facet_wrap와

enter image description here

+0

그냥 한 번 더 질문을, 나는 훨씬 더 나은 해결을 위해 로그 스케일에서이 작업을 수행하고 어떤 점에있는 것을 발견 녹색 박스 플롯의 점을 의미하는 다른 플롯은 분홍색으로 표시됩니다. 따라서 그럴 경우 플로팅을 스케일링해야합니다. 그렇다면 이상적이어야합니다. –

+0

당신이 제발 말할 수있는 그들 중 일부는 약간 오도 될 수있는 다른 그룹에 있기 때문에 각 유전자의 상자 음모를 통해 점 점을 나타내는 것이 좋습니다. 여기에 어떤 종류의 크기 조정을 적용해야합니까? 다른 경우에는 샘플 크기가 각 경우 20 이하이므로 점을 찍으려고 했으므로 넣는 것이 낫습니다. 너는 뭐라고해야 하느냐? –

+0

그래프의 포인트를 나타내는 부가가치가 무엇인지, 특히 많은로드가있는 지 잘 모르겠습니다. 내가 당신보다 더 정교한 상자 음모를 원한다면 [해적 음모] (http://nathanieldphillips.com/2016/04/pirateplot-2-0-the-rdplotting-choice-of-r- 해적 /) :) – thepule

2

:

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