2017-05-19 2 views
0

이 문제에 대한 답을 찾을 수 없어서 게시하고 있습니다.R에 누적 바로드를 주문하는 방법은 무엇입니까?

나는 내가 지금 내 데이터

에 다른 값의 발생을 비교하는 데 사용하는 스택 barplot, 나는 가장 큰 결합 된 값에서 시작하여 감소하는 순서를 주문하고자합니다. 나는 정상 barplots에 사용하는 방법을 사용하여 시도 :

barplot(combined[order(combined, decreasing = T)], 
    horiz = T, 
    las=1, 
    xlim = c(0,60), 
    col = c('lightblue','darkblue')) 

하지만 그것을 제대로 주문하는 방법이 있나요 no longer stacked

있는 barplot을 생산? ggplot을 사용하여 몇 가지 솔루션을 보았지만 가능하다면 표준 바 플롯을 고집하는 것을 선호합니다.

감사합니다.

+0

데이터도 함께 입력하십시오. – amonk

+0

다음 링크도 확인하십시오. http://thecoatlessprofessor.com/programming/creating-stacked-barplot-and-grouped-barplot-in-r-using-base-graphics-no- ggplot2/ – amonk

답변

1

귀하의 문제는 barplot() 내부의 매트릭스를 사용하고 있다는 것입니다. 주문을 사용하고 combined[order(combined, decreasing=T)]을 계산하면 결과는 벡터입니다. 당신이 코드를 사용할 수 있습니다 색상이 우선 순위가 것이다에 아무 관련하여 열을 주문하려면 다음이 무엇

barplot(combined[,order(apply(combined, 2, max))]) 

는 열 (마진 2의 기능 max()을 적용하는 것입니다, 마진 1 행 것이다). 그런 다음 각 열의 최대 값으로 정렬 된 행렬을 갖게됩니다.

+0

감사합니다! 이것은 완벽하게 작동합니다. 정확히 내가 무엇을 찾고 있었는지. – Pixeluz

+0

기꺼이 도와 드리겠습니다! 제발 올바른 대답을 선택하는 것을 잊지 마세요 :) –

0

나는 이제 방법을

num <- c(1, 8, 4, 3, 6, 7, 5, 2, 11, 3) 
cat <- c(letters[1:10]) 
data <- data.frame(num, cat) 

을 설명하기 위해 다음 예제를 사용하고,

barplot(data[order(data[,1],decreasing=FALSE),][,1],names.arg=data[order(data[,1],decreasing=FALSE),][,2], horiz = TRUE) 
이 예 도움이

enter image description here

희망 순서

감소에 barplot을 생성합니다.

관련 문제