R의 ggplot2에 개별 X 축 레이블을 유지하면서 boxplot 데이터 그룹화

베드로

샘플 유형 (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)
h3rm4n

당신은을 추가하여 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)"))

다음 플롯을 생성합니다.

여기에 이미지 설명 입력

Gene1Gene2플롯에 둘 다 포함하려면 먼저 데이터를 긴 형식으로 재구성하는 것이 가장 좋습니다.

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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

ggplot2 x-y 축이 축 레이블을 유지하면서 교차

분류에서Dev

숫자 값에 따라 ggplot2의 x 축 레이블 순서 지정

분류에서Dev

숫자 값에 따라 ggplot2의 x 축 레이블 순서 지정

분류에서Dev

ggplot2 x 축에 그룹화 된 막대에 백분율 추가 / 누락 된 데이터 제거

분류에서Dev

ggplot2 : facet_grid에서 x 축 레이블의 조건부 서식

분류에서Dev

ggplot R의 X 축 하위 레이블

분류에서Dev

ggplot2의 두 범주 형 변수에서 x 축 레이블을 어떻게 생성합니까?

분류에서Dev

ggplot2에 중첩 된 산점도를 사용하여 그룹화 된 상자 그림을 만드는 데 사용 된 두 요인 중 하나만으로 x 축에 레이블을 지정할 수 있습니까?

분류에서Dev

R : ggplot2를 사용하여 꺾은 선형 차트에서 X 축에 레이블 지정

분류에서Dev

R ggplot 그룹을 날짜별로 그룹화하고 동일한 datetime에서 x 축의 시간을 플롯합니다.

분류에서Dev

각 스택이 y 축 값에 해당하는 ggplot2의 그룹화 된 누적 막대 차트

분류에서Dev

ggplot을 사용하여 레이블이 다른 그룹화 된 데이터에 대해 하나의 그래프에 두 개의 선 플롯을 플로팅

분류에서Dev

그룹 사이에 공간을 만들고 boxplot에서 축 레이블의 크기를 제어하는 방법은 무엇입니까?

분류에서Dev

R에서 쌍별 유의성 그룹 레이블을 자동화하는 알고리즘

분류에서Dev

ggplot2의 막대 차트 (개별 x 축)에 세그먼트 추가

분류에서Dev

r : ggplot2의 x 축 축약 (x 축은 이진 값)

분류에서Dev

ggplot을 사용하여 목적에 맞게 boxplot x 축 레이블 및 범례 플로팅 및 조작

분류에서Dev

ggplot2 : x 축 이산 값을 부분 군으로 그룹화

분류에서Dev

Spring 데이터-그룹화에서 개별 항목 계산

분류에서Dev

ggplot2 R 플롯과 관련된 특정 지점에서 x 축 레이블 수정

분류에서Dev

축 레이블에 지수 추가 (R / ggplot2)

분류에서Dev

R ggplot2 및 ggforce에서 facet_wrap_paginate를 사용하는 x 축 레이블 누락

분류에서Dev

ggplot2의 다른 열로 y 축에 레이블 지정

분류에서Dev

Chart.js에서 그래프의 X 축에있는 모든 레이블을보고 싶지만 몇 개의 레이블 만 표시됩니다.

분류에서Dev

R : Boxplot-x 축 레이블을 아래로 이동하는 방법은 무엇입니까?

분류에서Dev

R : Boxplot-x 축 레이블을 아래로 이동하는 방법은 무엇입니까?

분류에서Dev

Holoviews : 그룹화 된 막대 차트의 x 축에서 변수 이름 제거

분류에서Dev

ggplot2에서 3 개월 또는 6 개월마다 날짜 x 축 레이블을 표시하는 방법

분류에서Dev

불일치 레이블 및 데이터를 방지하기 위해 완벽한 방법으로 개별 x 축 레이블 재정의

Related 관련 기사

  1. 1

    ggplot2 x-y 축이 축 레이블을 유지하면서 교차

  2. 2

    숫자 값에 따라 ggplot2의 x 축 레이블 순서 지정

  3. 3

    숫자 값에 따라 ggplot2의 x 축 레이블 순서 지정

  4. 4

    ggplot2 x 축에 그룹화 된 막대에 백분율 추가 / 누락 된 데이터 제거

  5. 5

    ggplot2 : facet_grid에서 x 축 레이블의 조건부 서식

  6. 6

    ggplot R의 X 축 하위 레이블

  7. 7

    ggplot2의 두 범주 형 변수에서 x 축 레이블을 어떻게 생성합니까?

  8. 8

    ggplot2에 중첩 된 산점도를 사용하여 그룹화 된 상자 그림을 만드는 데 사용 된 두 요인 중 하나만으로 x 축에 레이블을 지정할 수 있습니까?

  9. 9

    R : ggplot2를 사용하여 꺾은 선형 차트에서 X 축에 레이블 지정

  10. 10

    R ggplot 그룹을 날짜별로 그룹화하고 동일한 datetime에서 x 축의 시간을 플롯합니다.

  11. 11

    각 스택이 y 축 값에 해당하는 ggplot2의 그룹화 된 누적 막대 차트

  12. 12

    ggplot을 사용하여 레이블이 다른 그룹화 된 데이터에 대해 하나의 그래프에 두 개의 선 플롯을 플로팅

  13. 13

    그룹 사이에 공간을 만들고 boxplot에서 축 레이블의 크기를 제어하는 방법은 무엇입니까?

  14. 14

    R에서 쌍별 유의성 그룹 레이블을 자동화하는 알고리즘

  15. 15

    ggplot2의 막대 차트 (개별 x 축)에 세그먼트 추가

  16. 16

    r : ggplot2의 x 축 축약 (x 축은 이진 값)

  17. 17

    ggplot을 사용하여 목적에 맞게 boxplot x 축 레이블 및 범례 플로팅 및 조작

  18. 18

    ggplot2 : x 축 이산 값을 부분 군으로 그룹화

  19. 19

    Spring 데이터-그룹화에서 개별 항목 계산

  20. 20

    ggplot2 R 플롯과 관련된 특정 지점에서 x 축 레이블 수정

  21. 21

    축 레이블에 지수 추가 (R / ggplot2)

  22. 22

    R ggplot2 및 ggforce에서 facet_wrap_paginate를 사용하는 x 축 레이블 누락

  23. 23

    ggplot2의 다른 열로 y 축에 레이블 지정

  24. 24

    Chart.js에서 그래프의 X 축에있는 모든 레이블을보고 싶지만 몇 개의 레이블 만 표시됩니다.

  25. 25

    R : Boxplot-x 축 레이블을 아래로 이동하는 방법은 무엇입니까?

  26. 26

    R : Boxplot-x 축 레이블을 아래로 이동하는 방법은 무엇입니까?

  27. 27

    Holoviews : 그룹화 된 막대 차트의 x 축에서 변수 이름 제거

  28. 28

    ggplot2에서 3 개월 또는 6 개월마다 날짜 x 축 레이블을 표시하는 방법

  29. 29

    불일치 레이블 및 데이터를 방지하기 위해 완벽한 방법으로 개별 x 축 레이블 재정의

뜨겁다태그

보관