programing

ggplot2의 막대 그림에서 막대 사이의 공간을 늘리는 방법은 무엇입니까?

firstcheck 2021. 1. 14. 08:32
반응형

ggplot2의 막대 그림에서 막대 사이의 공간을 늘리는 방법은 무엇입니까?


ggplot2 의 막대 그림에서 막대 사이의 공간을 어떻게 늘릴 수 있습니까?


width아래와 같이 항상 매개 변수로 재생할 수 있습니다 .

df <- data.frame(x=factor(LETTERS[1:4]), y=sample(1:100, 4))
library(ggplot2)
ggplot(data=df, aes(x=x, y=y, width=.5)) + 
  geom_bar(stat="identity", position="identity") +
  opts(title="width = .5") + labs(x="", y="") +
  theme_bw()

에 대한 다음 다른 설정과 비교하십시오 width.

대체 텍스트

여태까지는 그런대로 잘됐다. 이제 두 가지 요인이 있다고 가정합니다. 균등하게 나란히 배치 된 바 ( in space와 함께 사용 하는 경우와 같이)로 연주하고 싶은 경우에는 사용 하기가 쉽지 않습니다 . 바 너비를 변경할 수 있지만 인접한 바 사이에 공백을 추가 할 수는 없습니다 (편리한 바를 찾지 못했습니다). Google의 솔루션). 나는 다음과 같은 결과를 얻었습니다.beside=TRUEbarplot()geom_bar(position="dodge")

df <- data.frame(g=gl(2, 1, labels=letters[1:2]), y=sample(1:100, 4))
x.seq <- c(1,2,4,5)
ggplot(data=transform(df, x=x.seq), aes(x=x, y=y, width=.85)) +
  geom_bar(stat="identity", aes(fill=g)) + labs(x="", y="") + 
  scale_x_discrete(breaks = NA) + 
  geom_text(aes(x=c(sum(x.seq[1:2])/2, sum(x.seq[3:4])/2), y=0, 
                label=c("X","Y")), vjust=1.2, size=8)

$ x $ 축에 사용되는 벡터는 data.frame에 "주입"되므로 원하는 경우 외부 간격을 변경하고 내부 간격 width을 제어 할 수 있습니다. $ x $-축의 레이블은 scale_x_discrete().

대체 텍스트


요인 막대 사이의 공간을 위해

ggplot(data = d, aes(x=X, y=Y, fill=F)) 
 + geom_bar(width = 0.8, position = position_dodge(width = 0.9))

geom_bar의 너비는 x 축을 기준으로 막대 너비를 제어하는 ​​반면 position_dodge의 너비는 x 축과 관련하여 두 막대에 제공되는 공간의 너비를 제어합니다. 너비를 조정하여 원하는 것을 찾으십시오.


감사합니다 chl.! 나는 똑같은 문제를 겪었고 당신이 그것을 해결하도록 도와주었습니다. geom_text를 사용하여 X 레이블을 추가하는 대신 scale_x_continuous를 사용했습니다 (아래 참조).

geom_text(aes(x=c(sum(x.seq[1:2])/2, sum(x.seq[3:4])/2), y=0, 
            label=c("X","Y")), vjust=1.2, size=8)

~로 교체되다

scale_x_continuous(breaks=c(mean(x.seq[1:2]), mean(x.seq[3:4])), labels=c("X", "Y")) 

POSIXlt 막대 사이의 간격을 위해 하루에 초 단위로 너비를 조정해야합니다.

# POSIXlt example: full & half width
d <- data.frame(dates = strptime(paste(2016, "01", 1:10, sep = "-"), "%Y-%m-%d"),
            values = 1:10)

ggplot(d, aes(dates, values)) +
  geom_bar(stat = "identity", width = 60*60*24) 

ggplot(d, aes(dates, values)) +
  geom_bar(stat = "identity", width = 60*60*24*0.5) 

참조 URL : https://stackoverflow.com/questions/12040245/how-to-increase-the-space-between-the-bars-in-a-bar-plot-in-ggplot2

반응형