막대 그래프를 누적 막대 그래프로 오버레이하려고하지만 막대 그래프는 0에서 그림을 그리기 시작할 때 항상 오른쪽으로 이동합니다. 내가하려는 일에 대한 예는 아래를 참조하십시오 (ggplot을 사용하지 않고 추가해야 함).
set.seed(1)
dat <- rnorm(1000, sd = 10)
h <- hist(dat)
cnt <- h$counts
breaks <- h$breaks
mat <- matrix(NA, nrow = 3, ncol = length(cnt))
for(i in 1:length(cnt)){
sample <- sample(1:3, size = cnt[i], replace = TRUE)
for(j in 1:3){
mat[j, i] <- sum(sample == j)
}
}
barplot(mat, add = TRUE, width = unique(diff(breaks)), space = 0,
col = c("blue", "green", "orange"))
이 코드의 출력은 다음과 같습니다.
나는 위치를 지정하는 매트릭스 매트에서 columnnames를 사용해 보았지만 아무 소용이 없습니다. 막대 그래프와 똑같은 위치에 있어야하므로 히스토그램을 생성하려는 플롯에서 완전히 오버 플로팅됩니다. 처음에 플로팅하는 이유는 히스토그램 플롯이 제공하는 축을 원하기 때문입니다. 이를 수행하는 방법에 대한 아이디어는 대단히 감사합니다.
barplot
콘솔 출력의 중간 과 휴식을 결합하여 틱 hist
을 만들 수 있습니다 axis
. 막대 중간에서 막대 그래프 너비의 절반을 뺍니다. 를 사용 mtext
하면 축 레이블을 더 잘 제어 할 수 있습니다.
h <- hist(dat, plot=FALSE)
# [...]
.width <- unique(diff(breaks))
b <- barplot(mat, width=.width, space=0,
col=c("blue", "green", "orange"))
axis(1, b-.width/2, labels=FALSE)
mtext(h$breaks[-length(h$breaks)], 1, 1, at=b-.width/2)
.width <- unique(diff(breaks))
b <- barplot(mat, width=.width, space=0,
col=c("blue", "green", "orange"))
ats <- seq(0, par()$usr[2], 5)
mod <- (ats + 5) %% 20 == 0
labs <- h$breaks
axis(1, ats[mod], labels=FALSE)
mtext(labs[mod], 1, 1, at=ats[mod])
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다