2016-07-13 2 views
1

여러 데이터 범위가 다르게 강조된 막대 그림을 생성하려고합니다. 여기 r - ggplot2 - highlighting selected points and strange behavior에있는 다음 질문은 부분 집합과 데이터 포인트 중 하나의 범위 만 강조 표시하는 대신 데이터 포인트의 여러 범위를 부분 집합으로하고 차동 색 막대 플롯을 생성하려는 경우를 제외하고 내가하고 싶은 것에 가깝습니다.ggplot에서 여러 데이터 포인트 부분 집합 및 강조 표시

내가 어떻게 차별적으로 여러 하위 집합을 강조하기 위해 위의 코드를 수정할 수 있습니다 붉은 강조하기 위해 (위의 질문에서 적응)이 코드 (30)

a <- 1:50 
b <- rnorm(50) 
mydata <- data.frame(a=a,b=b) 
mydata[10:30,] 
ggplot(mydata,aes(x=a,y=b)) + geom_point(colour="blue") + geom_point(data=mydata[10:30,], aes(x=a, y=b), colour="red") 

-10 데이터의 하위 집합을 사용하고, 말 , 1 : 9 (녹색), 10:30 (빨간색) 및 40:50 (시안 색)? 또 다른 문제는 내가 코드가 오류를 반환하는 바 음모, 사전에 Error: stat_count() must not be used with a y aesthetic.

감사를 생산하는 ggplot에 geom_bargeom_point을 변경하여 그 코드를 수정하는 경우이다.

답변

1

데이터의 다른 하위 집합에 대해 다른 색을 원한다면이 하위 집합이 다른 그룹을 나타낼 것이라고 생각합니다. ggplot에서 이것을 처리하는 일반적인 방법은 그룹 변수를 만드는 것입니다. 그러면 ggplot에서 그룹에 대한 색상을 쉽게 설정할 수 있습니다. 당신이 막대 플롯을 원하는 경우에

library(ggplot2) 
a <- 1:50 
b <- rnorm(50) 
mydata <- data.frame(a=a, b=b) 
mydata$group  <- "a" 
mydata$group[1:9] <- "b" 
mydata$group[10:30] <- "c" 
mydata$group[40:50] <- "d" 

ggplot(mydata,aes(x=a,y=b, col = group)) + 
    geom_point() + 
    scale_color_manual(values=c("blue", "green", "red", "cyan"), guide = FALSE) 

enter image description here
는이 같은 통계 = "정체성"을 설정해야합니다 : @ 알렉스 그것을 했나요으로

ggplot(mydata,aes(x=a,y=b, col = group, fill = group)) + 
    geom_bar(stat = "identity") + 
    scale_color_manual(values=c("blue", "green", "red", "cyan"), guide = FALSE) + 
    scale_fill_manual(values=c("blue", "green", "red", "cyan"), guide = FALSE) 

enter image description here

+0

감사 알렉스, 그것을 작동합니다! – barongo

3

, 당신이 사용할 수 있습니다 group 변수를 사용하여 올바른 색상을 선택하십시오.

사용 geom_bar(stat = "identity")geom_bar에 대한 fill에 의해 color을 변경 enter image description here

a <- 1:50 
b <- rnorm(50) 
mydata <- data.frame(a=a,b=b) 
mydata$group  <- "a" 
mydata$group[1:9] <- "green" 
mydata$group[10:30] <- "red" 
mydata$group[40:50] <- "cyan" 

ggplot(mydata,aes(x=a,y=b, fill = group)) + 
geom_bar(stat = "identity") + 
scale_fill_manual(values=c("a" = "black", "green" = "green", "red" = "red", "cyan" = "cyan"), guide = FALSE) 
관련 문제