R에서 그래프에 여러 개의 바 플로트 그리기 [닫기]


12

R의 단일 그래프에 네 개의 막대 그래프를 플로팅하고 싶습니다. 다음 코드를 사용했습니다. 여기서 범례를 그래프 위에 유지하는 방법, 특히 범례는 2 ~ 3 개의 막대 그래프 사이 여야합니다. 나도 시도 par(mar=c(4.1,4.1,8.1,4.1)했지만 성공하지 못했습니다. 또한 legend()두 번째 막대 그래프 후에 실행하려고했지만 사용하지 않았습니다. 전설은 네 개의 바 플로트 모두를위한 것입니다. 이것 좀 도와주세요.

    par(mfrow=c(1,4))
    barplot(t(A), beside=T, ylim=c(-100,100),..)
    barplot(t(B), beside=T, ylim=c(-100,100),..)
    barplot(t(C), beside=T, ylim=c(-100,100),..)
    barplot(t(D), beside=T, ylim=c(-100,100),..)
    legend(...)

1
누군가가 이것을 태그로 R
Brandon Bertelsen

@Kevin 이것은 유효한 Q입니다. R에 명령 행 인터페이스가 있다는 것은 R 질문이 프로그래밍 질문임을 의미하지 않습니다.

@ 브랜든 물론; 나중에 제안 된 수정 사항을 사용할 수 있으며 승인 된 제안에 대해 2 명의 담당자를 얻게됩니다.

답변:


17

박사 마이크의 대답은 좋은 일이지만, 나는이 패 시팅 (또는적인 trellising) 활용의 기능을 솔루션을 제공 할 거라고 생각 ggplot2lattice. 먼저 데이터를 약간 준비하십시오.

mydata$id <- 1:nrow(mydata)
dat <- melt(mydata,id.vars = "id")

그리고 우리는 다음을 할 수 있습니다 ggplot2:

ggplot(dat,aes(x=factor(id), y = value)) + 
    facet_wrap(~variable) +
    geom_bar(aes(fill = factor(id)))

여기에 이미지 설명을 입력하십시오

그리고 사용 lattice:

barchart(~value|variable,group = factor(id),data=dat,
         key = simpleKey(text = as.character(1:5),
                rectangles = TRUE,points = FALSE,space = "right"))

여기에 이미지 설명을 입력하십시오


@Brandon-새로운 임무입니다. 이러한 질문은 기본, ggplot2 및 격자의 예제를 포함하는 다른 사람들에게 더 나은 참조입니다.
joran

@Joran : 환상적입니다.
사마 라사

ggplot 버전에서 "factor (id)"의 레이블 이름을 바꾸는 방법은 무엇입니까?
News_is_Selection_Bias

11

가장 간단한 해결책은 barplot 명령의 고유 기능을 사용하여 문제를 해결하는 것입니다. 다음 코드는 내가 원하는 것으로 해석합니다.

mydata <- data.frame(Barplot1=rbinom(5,16,0.6), Barplot2=rbinom(5,16,0.25),
                     Barplot3=rbinom(5,5,0.25), Barplot4=rbinom(5,16,0.7))
barplot(as.matrix(mydata), main="Interesting", ylab="Total", beside=TRUE, 
        col=terrain.colors(5))
legend(13, 12, c("Label1","Label2","Label3","Label4","Label5"), cex=0.6, 
       fill=terrain.colors(5))

음모

이것이 귀하의 질문에 대답하기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.