bestsource

회피된 막대 그래프에 gem_text 위치

bestsource 2023. 6. 18. 16:09
반응형

회피된 막대 그래프에 gem_text 위치

제목을 스스로 설명할 수 있도록 하려고 했지만, 데이터가 먼저입니다.

dtf <- structure(list(variable = structure(c(1L, 1L, 2L, 2L, 3L, 3L, 
4L, 4L, 5L, 5L), .Label = c("vma", "vla", "ia", "fma", "fla"), class = "factor"), 
    ustanova = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 
    2L), .Label = c("srednja škola", "fakultet"), class = "factor"), 
    `(all)` = c(42.9542857142857, 38.7803203661327, 37.8996138996139, 
    33.7672811059908, 29.591439688716, 26.1890660592255, 27.9557692307692, 
    23.9426605504587, 33.2200772200772, 26.9493087557604)), .Names = c("variable", 
"ustanova", "(all)"), row.names = c(NA, 10L), class = c("cast_df", 
"data.frame"), idvars = c("variable", "ustanova"), rdimnames = list(
    structure(list(variable = structure(c(1L, 1L, 2L, 2L, 3L, 
    3L, 4L, 4L, 5L, 5L), .Label = c("vma", "vla", "ia", "fma", 
    "fla"), class = "factor"), ustanova = structure(c(1L, 2L, 
    1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("srednja škola", 
    "fakultet"), class = "factor")), .Names = c("variable", "ustanova"
    ), row.names = c("vma_srednja škola", "vma_fakultet", "vla_srednja škola", 
    "vla_fakultet", "ia_srednja škola", "ia_fakultet", "fma_srednja škola", 
    "fma_fakultet", "fla_srednja škola", "fla_fakultet"), class = "data.frame"), 
    structure(list(value = structure(1L, .Label = "(all)", class = "factor")), .Names = "value", row.names = "(all)", class = "data.frame")))

그리고 회피할 수 있는 막대 그래프를 만들고 싶습니다.coord_flip막대 내부에 텍스트 레이블을 추가합니다.

ggplot(bar) + geom_bar(aes(variable, `(all)`, fill = ustanova), position = "dodge") +
 geom_text(aes(variable, `(all)`, label = sprintf("%2.1f", `(all)`)), position = "dodge") +
 coord_flip()

여기에서 출력을 볼 수 있습니다.

enter image description here

제가 사소한 것을 요구하는 것 같습니다.텍스트 레이블이 쌓인 막대를 "따라" 가기를 원합니다.라벨은 y축에 올바르게 배치되어 있지만, x축에 올바르게 배치하는 방법은 무엇입니까?

이게 네가 원하는 거야?

library(ggplot2)

ggplot(bar) + 
  geom_col(aes(variable, `(all)`, fill = ustanova), position = "dodge") +
  geom_text(aes(variable, `(all)`, label = sprintf("%2.1f", `(all)`), group = ustanova), 
            position = position_dodge(width = .9)) +
  coord_flip()

중요한 것은position = position_dodge(width = .9)(어디서.9막대의 기본 너비) 대신position = "dodge"매개 변수가 없는 바로 가기입니다.또한 다음을 설정해야 합니다.group=ustanova에 심미적인.geom_text꼬리표를 피하다ustanova(두 번째 옵션은 다음과 같습니다.)fill = ustanova을 통한 세계적 미학.ggplot(bar, aes(fill = ustanova))


ggplot2_2.0.0에서 몇 가지 예를 찾을 수 있습니다.?geom_text위치 결정 방법에 대하여geom_text회피 또는 쌓인 막대("라는 이름의 코드 청크)# Aligning labels and bars"). Q&A position_dodge의 width 인수는 무엇입니까?항목에 대한 자세한 설명을 제공합니다.

언급URL : https://stackoverflow.com/questions/6017460/position-geom-text-on-dodged-barplot

반응형