2013-12-19 1 views
11

geom_bar 그것을 가로 바를 고정했다 가장 때 작동하는 것으로 보인다하지 방법 - 바 사이에도 공간이 documentation에 따른 폭에 의해 결정되는 것. 당신이 가변 폭이 때 내가 기대하는 것처럼, 그러나, 그것은 응답하지 않습니다 (here을 같이) 다른 막대 사이의 중복이나 격차로 이어지는. ggplot2 가변 바 폭을 확인하는 중첩 또는 갭

는 내 말은,이 매우 간단 재현 예를보십시오을 확인하려면 :

x <- c("a","b","c") 
w <- c(1.2, 1.3, 4) # variable widths 
y <- c(9, 10, 6) # variable heights 

ggplot() + 
geom_bar(aes(x = x, y = y, width = w, fill=x), 
stat="identity", position= "stack") 

다른 바 히스토그램처럼, 중복 단지 감동,하지만 일을 위해 내가 정말 원하는 것은.

나는 position= "stack", "dodge""fill을 추가했지만 아무 작업도하지 않았습니다. 해결책이 geom_histogram에 있거나 아니면 geom_bar을 올바르게 사용하지 않았습니까?

geom-plot overlap

추신 갭 문제를보고, 위의 코드에 0.54을 교체 시도하고 결과를 참조하십시오.

답변

14

는 간단한 해결책이없는 것 같다, 그래서 우리는 진드기 바 센터에 필요한 위치 (this 유용) w의 측면에서 연속으로 x 축 치료를 수동으로 계산해야합니다

# pos is an explicit formula for bar centers that we are interested in: 
#  last + half(previous_width) + half(current_width) 
pos <- 0.5 * (cumsum(w) + cumsum(c(0, w[-length(w)]))) 
ggplot() + 
    geom_bar(aes(x = pos, width = w, y = y, fill = x), stat = "identity") + 
    scale_x_continuous(labels = x, breaks = pos) 

enter image description here

+0

합니다. 아마 ggplot2 devs에 대한 기능이 위치 옵션으로 추가하는 것을 고려하고 있습니까? – RobinLovelace

+0

@RobinLovelace, 문제 없습니다. 어쩌면, 당신은 (https://github.com/hadley/ggplot2/issues) 질문 할 수 있습니다. – Julius

+0

조언 해 주셔서 감사합니다. 나는이 https://github.com/hadley/ggplot2/issues/890을했지만 ggplot 문제 페이지에서 이것을 볼 수 없습니다. 제거 된 것으로 보입니다 - 어떤 생각입니까? – RobinLovelace

관련 문제