bestsource

gem_bargplot2의 막대를 값별로 재정렬

bestsource 2023. 6. 8. 21:14
반응형

gem_bargplot2의 막대를 값별로 재정렬

나는 플롯이 명령된 바 플롯을 만들려고 합니다.miRNA최고로value에게miRNA최저가로내 코드가 작동하지 않는 이유는 무엇입니까?

> head(corr.m)

        miRNA         variable value
1    mmu-miR-532-3p      pos     7
2    mmu-miR-1983        pos    75
3    mmu-miR-301a-3p     pos    70
4    mmu-miR-96-5p       pos     5
5    mmu-miR-139-5p      pos    10
6    mmu-miR-5097        pos    47

ggplot(corr.m, aes(x=reorder(miRNA, value), y=value, fill=variable)) + 
  geom_bar(stat="identity")

막대 그림이 낮은 순서에서 높은 순서로 정렬된 것을 제외하면 코드가 제대로 작동합니다.막대를 높음에서 낮음으로 주문하려면 다음을 추가해야 합니다.-앞에 서명.value:

ggplot(corr.m, aes(x = reorder(miRNA, -value), y = value, fill = variable)) + 
  geom_bar(stat = "identity")

이는 다음을 제공합니다.

여기에 이미지 설명 입력


사용된 데이터:

corr.m <- structure(list(miRNA = structure(c(5L, 2L, 3L, 6L, 1L, 4L), .Label = c("mmu-miR-139-5p", "mmu-miR-1983", "mmu-miR-301a-3p", "mmu-miR-5097", "mmu-miR-532-3p", "mmu-miR-96-5p"), class = "factor"),
                         variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L), .Label = "pos", class = "factor"),
                         value = c(7L, 75L, 70L, 5L, 10L, 47L)),
                    class = "data.frame", row.names = c("1", "2", "3", "4", "5", "6"))

@Jaap이 대답한 것 외에도 플롯을 정렬하는 두 가지 다른 방법이 있습니다.

1: 사용desc값 인수:

ggplot(corr.m, aes(x = reorder(miRNA, desc(value)), y = value, fill = variable)) + 
   geom_bar(stat = "identity")

2: miRNA 인자를 분리하고 생략reorder인수:

corr.m %>%
   arrange(desc(value)) %>%
   mutate(miRNA = factor(miRNA, levels = unique(miRNA))) %>% 
ggplot(aes(x = miRNA, y = value, fill = variable)) + 
   geom_bar(stat = "identity") 

다른 옵션은 변수를 다음과 같이 만드는 것입니다.factor요인이 있는 곳levels값 변수를 기준으로 내림차순입니다.

감소 = TRUE

library(ggplot2)
# Create factor column with decreasing order TRUE
corr.m$miRNA <- factor(corr.m$miRNA, levels = corr.m$miRNA[order(corr.m$value, decreasing = TRUE)])

ggplot(corr.m, aes(x=miRNA, y=value, fill=variable)) + 
  geom_bar(stat="identity") 

repref v2.0.2를 사용하여 2022-08-19에 생성됨

감소 = FALSE

library(ggplot2)
# Create factor column with decreasing order FALSE
corr.m$miRNA <- factor(corr.m$miRNA, levels = corr.m$miRNA[order(corr.m$value, decreasing = FALSE)])

ggplot(corr.m, aes(x=miRNA, y=value, fill=variable)) + 
  geom_bar(stat="identity")

repref v2.0.2를 사용하여 2022-08-19에 생성됨

언급URL : https://stackoverflow.com/questions/25664007/reorder-bars-in-geom-bar-ggplot2-by-value

반응형