샘플 유형 (x 축)에 대해 Gene1 개수 (y 축)의 순위를 플로팅하고 있습니다. 원산지 조직 (유방, 결장 직장, 폐)에 따라 샘플 유형을 그룹화하고 각각 암 또는 정상 조직에서 빨간색과 녹색을 사용하는지 여부를 색상 코드로 분류하고 싶습니다.
나는 그래프를 만들었다. 1) 얼굴이있는 BOXPLOTS (아래 참조)는 내 비전에 가깝지만 몇 가지 중요한 문제를 보여줍니다. 그래프를 개선해야 할 몇 가지 질문이 있습니다.
[IMG] http://i57.tinypic.com/10yfmmw.png[/IMG]
1) 각 패싯은 9 개 레인 (열)으로 끝났으며 그로부터 많은 부분이 상자로 채워지지 않았습니다. 각 패싯에서 상자가 차지하지 않는 레인 (열)을 제거하려면 어떻게합니까?
2) 그림과 같이 그룹화를 유지하면서 패싯을 사용하지 않고이 그래프를 그릴 수 있습니까?
3) 패싯 레이블의 두 레이어를 만들 수 있습니까? 즉, 기존 패싯 레이블 위에 "Gene1"레이블을 배치하고 싶습니다. 이렇게하면 Gene2에 대해 아래 표시된 것과 동일한 그래프를 생성 할 수 있으므로 각 그래프 상단에 "마스터"패싯 레이블을 사용하여 두 그래프를 나란히 패싯 할 수 있습니다.
이해가 되길 바랍니다. 여러분의 제안과 아이디어에 감사드립니다.
내 데이터를 다운로드하고 그래프를 재현 할 수있는 다음 코드를 참조하십시오.
테스트 파일 가져 오기
fileURL <- "https://dl.dropboxusercontent.com/u/4098921/testfile.csv"
test <- read.csv(fileURL,header=T)
head(test)
> head(test)
Subset Tissue Type id Gene1 Gene2
1 Normal Breast GTEx_Breast 1 5027 12597
2 Normal Breast GTEx_Breast 2 5287 12338
3 Normal Breast GTEx_Breast 3 2385 12543
4 Normal Breast GTEx_Breast 4 3174 12266
5 Normal Breast GTEx_Breast 5 6593 11350
6 Normal Breast GTEx_Breast 6 4648 10932
1) 얼굴이있는 복 슬롯
library(ggplot2)
ggplot(test,aes(x=Type, y=Gene1, fill=Subset))+
geom_boxplot(notch=T, notchwidth=0.5,outlier.shape=1,outlier.size=2, coef=1.5)+
theme(axis.text=element_text(color="black"))+
theme(axis.text.x=element_text(angle=90,hjust=1,vjust=0.4))+
theme(panel.grid.minor=element_blank())+
labs(size= "Type",x = "",y = "Rank of Gene1 count", title = "1) BOXPLOT WITH FACETS")+
scale_fill_manual(values=c("red","lawngreen"),name="Subset",
labels=c("Cancer (TCGA)", "Normal (GTEx)"))+
facet_grid(~Tissue)
당신은을 추가하여 x 축에 사용되지 않은 라벨을 제거 할 수 있습니다 scales = "free_x"
로 facet_grid
. 또한 추가 space = "free"
하면 동일한 크기의 상자 그림이 표시됩니다. 와:
ggplot(test,aes(x=Type, y=Gene1, fill=Subset))+
geom_boxplot(notch=T, notchwidth=0.5,outlier.shape=1,outlier.size=2, coef=1.5)+
theme(axis.text=element_text(color="black"))+
theme(axis.text.x=element_text(angle=90,hjust=1,vjust=0.4))+
theme(panel.grid.minor=element_blank())+
labs(size= "Type",x = "",y = "Rank of Gene1 count", title = "1) BOXPLOT WITH FACETS")+
scale_fill_manual(values=c("red","lawngreen"),name="Subset",
labels=c("Cancer (TCGA)", "Normal (GTEx)"))+
facet_grid(~Tissue, scales = "free_x", space = "free")
다음 플롯이 표시됩니다.
패싯을 사용하지 않고 그룹화를 유지하는 경우 그룹화를 고려하는 새 변수를 만들 수 있습니다. 다음과 interaction
같이 할 수 있습니다 .
# create the new variable
test$newType <- factor(interaction(test$Tissue,test$Type))
# set the correct order of the new variable
test$newType <- factor(test$newType,
levels=levels(test$newType)[order(levels(test$newType))],
labels=levels(test$Type)[order(levels(test$newType))])
그런 다음 다음을 사용하여 새 플롯을 만들 수 있습니다.
ggplot(test,aes(x=newType, y=Gene1, fill=Subset))+
geom_boxplot(notch=T, notchwidth=0.5,outlier.shape=1,outlier.size=2, coef=1.5)+
theme(axis.text=element_text(color="black"))+
theme(axis.text.x=element_text(angle=90,hjust=1,vjust=0.4))+
theme(panel.grid.minor=element_blank())+
labs(size= "Type",x = "",y = "Rank of Gene1 count", title = "1) BOXPLOT WITH FACETS")+
scale_fill_manual(values=c("red","lawngreen"),name="Subset",
labels=c("Cancer (TCGA)", "Normal (GTEx)"))
다음 플롯을 생성합니다.
Gene1
및 Gene2
플롯에 둘 다 포함하려면 먼저 데이터를 긴 형식으로 재구성하는 것이 가장 좋습니다.
library(tidyr)
test2 <- test %>% gather(gene,value,5:6)
다음을 사용하여 플롯을 만들 수 있습니다.
ggplot(test2,aes(x=Type, y=value, fill=Subset))+
geom_boxplot(notch=T, notchwidth=0.5,outlier.shape=1,outlier.size=2, coef=1.5)+
theme(axis.text=element_text(color="black"))+
theme(axis.text.x=element_text(angle=90,hjust=1,vjust=0.4))+
theme(panel.grid.minor=element_blank())+
labs(size= "Type",x = "",y = "Rank of Gene1 count", title = "1) BOXPLOT WITH FACETS")+
scale_fill_manual(values=c("red","lawngreen"),name="Subset",
labels=c("Cancer (TCGA)", "Normal (GTEx)"))+
facet_grid(gene~Tissue, scales = "free_x", space = "free")
위의 코드는 다음 플롯을 제공합니다.
추가 패싯 레이어를 사용하지 않고 다른 유전자를 포함하는 옵션으로 다음을 사용할 수 있습니다.
ggplot(test2,aes(x=Type, y=value, fill=Subset, alpha=gene))+
geom_boxplot(notch=T, notchwidth=0.5,outlier.shape=1,outlier.size=2, coef=1.5)+
theme(axis.text=element_text(color="black"))+
theme(axis.text.x=element_text(angle=90,hjust=1,vjust=0.4))+
theme(panel.grid.minor=element_blank())+
labs(size= "Type",x = "",y = "Rank of Gene count", title = "BOXPLOT WITH FACETS")+
scale_fill_manual(values=c("red","lawngreen"),name="Subset",
labels=c("Cancer (TCGA)", "Normal (GTEx)"))+
facet_grid(.~Tissue, scales = "free_x", space = "free") +
theme_bw() +
theme(axis.text.x=element_text(angle=90, vjust=0.5, hjust=1))
결과:
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다