2017-03-17 1 views
1

이미 대답이 here이지만 ggplot2 막대 그래프에만 해당합니다. 의 내가 (6 빨간색 및 6 파란색) 빨간색 막대와 파란색 막대, 각각 같은 수의 히스토그램 생성하기 위해 다음과 같은 코드가 있다고 가정 해 봅시다 :xaxis 값에 따라 둘 이상의 색상이있는 단일 막대 그래프

set.seed(69) 
hist(rnorm(500), col = c(rep("red", 6), rep("blue", 7)), breaks = 10) 

를 I 출력으로 다음과 같은 이미지가 있습니다 enter image description here

전체 프로세스를 자동화하고 싶습니다. x 축에서 값을 사용하고 반복 횟수를 지정하지 않고 hist() 함수를 사용하여 히스토그램 막대를 색칠하는 조건을 설정하는 방법은 무엇입니까? 각 색깔의?

지원에 대한 평가가 가장 높습니다.

+0

이것은 x 축 값에 실제로 의존합니까? 아니면 짝수 개의 막대 만 원하십니까? 실은 씨앗 69를 가지고있는 줄거리입니까? 나는 7 개의 파란색 바가있는 다른 줄거리를 얻는다. 동일한 개수의 막대가 없습니다. – MrFlick

+0

@MrFlick 아니요,이 예제 코드를 실행할 때마다 매번 같은 결과가 나타납니다! (6 파랑 - 6 빨강). 그리고 네, 그것은 x 축 값에 달려 있습니다. – Facottons

답변

1

는 HIST 기능은 브레이크 포인트를 결정하는 예쁜 함수를 사용하여, 그래서 당신이 할 수 있습니다 : (참고 내가, 내가 실제로 데이터를 집계 이렇게하고 barplot을 할 때

set.seed(69) 
x <- rnorm(500) 
breaks <- pretty(x,10) 
col <- ifelse(1:length(breaks) <= length(breaks)/2, "red", "blue") 
hist(x, col = col, breaks = breaks) 
+0

좋습니다! 나는이 '예쁜()'기능을 몰랐다. 내 코드에서 제안을 사용하고 피드백으로 돌아갑니다! – Facottons

2

다음과 같이를 그

set.seed(69) 
dat <- rnorm(500, 0, 1) 
tab <- table(round(dat, 1))#Round data from rnorm because rnorm can be precise beyond most real data 
bools <- (as.numeric(attr(tab, "name")) >= 0)#your condition here 
cols <- c("grey", "dodgerblue4")[bools+1]#Note that FALSE + 1 = 1 and TRUE + 1 = 2 
barplot(tab, border = "white", col = cols, main = "Histogram with barplot") 

출력 :

enter image description here

표로 데이터의 막대 그래프는 히스토그램) 인
+0

당신의 솔루션은 매우 흥미 롭습니다. 그러나 정말로 'hist()'함수가 필요하기 때문에 휴식 값으로 쉽게 플레이 할 수 있습니다. – Facottons