2017-10-26 5 views
-1

이 질문은 이미 제기되었지만 어쨌든 시도해 볼 것입니다. 문제가 해결되지 않은 것을 찾을 수 없었습니다.다른 색상을 사용하여 ggplot2로 일련의 직사각형을 그립니다.

간단히 일련의 직사각형을 그린 다음 값에 따라 색을 지정하고 x 또는 y 값을 지정하지는 않습니다. 내가하려고했던

이제
plot <- ggplot() + geom_rect(data = mydata, aes(xmin = mydata$first, xmax = mydata$last, ymin = 2, ymax = 5)) 

:

그래서 :

file <- read.table("positions.txt", header=FALSE) 
names(file) <- c("start", "end") 

char_start <- as.character(file$start) 
first <- as.numeric(char_start) 

char_end <- as.character(file$end) 
last <- as.numeric(char_end) 

mydata <- data.frame(first, last) 

을 나는이 같은 다음 내 음모를 만들 : 나는 시작하고 직사각형 끝 위치가 내가 그리려는 파일에서 읽고있다 다른 값에 따라 두 가지 색상으로 사각형을 채 웁니다. 예를 들어 첫 번째 파일의 하위 집합을 포함하는 다른 파일 "positions_subset.txt"가 있다고 가정 해 보겠습니다. 직사각형이 양쪽 모두에 포함되어 있다면 파란색으로, 그렇지 않으면 빨간색으로 원한다.

는 아이디어 : 그렇지 않으면, 내가 그것을 할 수있는 방법을 생각 그래서

는 파일에 구문 분석하는 것입니다, 나는이 두 파일에 좌표 쌍 찾을 때마다, 나는 "1"벡터에 추가 "0". 그래서 결국 벡터가 생깁니다 :

in_both <- c(1,0,0,1,0...) 

제가 가지고있는 직사각형과 동일한 개수의 요소가 있습니다. 그럼 간단했다 : 그러나

colors <- ifelse(in_both == 1, "blue", "red") 

을 그때 나는 오류가

ggplot() + aes(xmin = mydata$first, xmax = mydata$last, ymin = 2, ymax = 5, fill=colors)) 

처럼 그렇게하려고하면 "미학 중 하나를 길이 1 데이터와 동일한 (30)되어야합니다 :이 xMin , xmax, ymin, ymax, fill "

오류의 의미를 이해하지만 어떻게해야 그렇지는 모르겠다. x 축의 각 점에 대해 색상 정보가 필요합니까?

+0

아닌 벡터는 AES에 변수의 이름을 통과해야 다음

aes(xmin=first, xmax=last,...,fill=color) 

를 사용

data$color<-colors 

색상에 사용되는 변수를 포함하면 데이터에 열 추가 ! 가능한 경우 데이터의 예와 플롯의 예를 제공해주십시오. 자세한 내용은 여기를 참조하십시오. https://stackoverflow.com/a/5963610/4738478 – zlipp

답변

1

헤이

+0

ok 나는 undestand입니다. 감사합니다. 하지만 색상 데이터 $ 색상도 벡터가 아닌가요? – malajedala

+0

예, 색상에 해당하지 않습니다. 초기 색상을 얻으려면 + scale_fill_manual (값 = 색상)을 사용해야합니다.이 게시물은 https://stackoverflow.com/questions/36048033/manually-colouring-plots-with와 같습니다. -scale-fill-manual-in-ggplot2-not-working – Cedric