2013-06-19 2 views
3

반전 좌표 값을 플롯 있지만 다음과 같이, 하나 개의 그룹의 좌표를 반전 :ggplot2 : 다수의 동일한 페이지의 히스토그램,하지만 동일한 데이터로부터 둘 이상의 히스토그램 플롯하고자

enter image description here

(참고 :이 그림은 Grossman et al 2011, A composite of Multiple Signals Distinguishes Causal Variants in Regions of Positive Selection에서 가져온 것입니다) :

> library(ggplot2) 
> head(diamonds) 
    carat  cut color clarity depth table price x y z 
1 0.23  Ideal  E  SI2 61.5 55 326 3.95 3.98 2.43 
2 0.21 Premium  E  SI1 59.8 61 326 3.89 3.84 2.31 
3 0.23  Good  E  VS1 56.9 65 327 4.05 4.07 2.31 
4 0.29 Premium  I  VS2 62.4 58 334 4.20 4.23 2.63 
5 0.31  Good  J  SI2 63.3 58 335 4.34 4.35 2.75 
6 0.24 Very Good  J VVS2 62.8 57 336 3.94 3.96 2.48 
,745의이 ggplot2에서 다이아몬드의 데이터 집합을 보자, 예를 들어

하나의 접근법은 stat_bin을 사용하여 막대 그래프를 계산하지 않고 히스토그램을 계산하고, 반환 된 카운트 열의 값을 변경하는 것이 었습니다.

> my_sb <-stat_bin(data=diamonds, mapping=aes(x=x) 

stat_bin 문서는이 기능은 하나의 매핑되지만 새로운 네 열 (셀 밀도, ncount, ndensity)을 첨가하고 동일한 data.frame를 반환한다고 말한다.

# I supposed that this should contain a count, density columns, but it does not. 
> print(head(my_sb$data)) 
    carat  cut color clarity depth table price x y z 
1 0.23  Ideal  E  SI2 61.5 55 326 3.95 3.98 2.43 
2 0.21 Premium  E  SI1 59.8 61 326 3.89 3.84 2.31 
3 0.23  Good  E  VS1 56.9 65 327 4.05 4.07 2.31 
4 0.29 Premium  I  VS2 62.4 58 334 4.20 4.23 2.63 
5 0.31  Good  J  SI2 63.3 58 335 4.34 4.35 2.75 
6 0.24 Very Good  J VVS2 62.8 57 336 3.94 3.96 2.48 

또 다른 가능한 방법은 scale_y_reverse()를 사용하는 것입니다,하지만 난 하나의 데이터 세트에 적용하는 방법을 알고하지 않습니다하지만 난 아무데도 이러한 열을 찾을 수 없습니다.

제가 생각할 수있는 세 번째 접근법은 viewPorts를 사용하는 것입니다.하지만 구현 방법에 대해서는 잘 모르겠습니다. 이 어쩌면처럼

답변

4

: 참고로

ggplot(data = diamonds) + 
    geom_histogram(aes(x = x,y = ..count..)) + 
    geom_histogram(aes(x = x,y = -..count..)) 

- 내가 과거에 이런 짓을했던 방법을 정확하게 기억할 수 없었다, 그래서 구글에서 'ggplot2 반전 히스토그램 "및 first hit하는 StackOverflow의 질문에 클릭 .

정확히 stat_bin이 반환하는 proto 객체가 구조화되어 있지만 새로운 변수가 어딘가에 있는지 확실하지 않습니다. 이것이 작동하는 방식은 geom_histogram 자체가 비닝을 수행하기 위해 stat_bin을 호출하기 때문에 계산 된 변수에 액세스 할 수 있습니다.이 값을 y 변수에 매핑 할 수 있습니다.

+0

감사합니다. 이게 정확히 내가 찾고 있었던거야. 나는 게시하기 전에 google로 검색했지만 운이 없었다 :-). – dalloliogm