2013-02-14 1 views
0

전설이 포함 된대로 정확히 positive valuesnegative values을 그렸습니다. 나는 이제 이것을 하나의 음모로 하나의 음모로 만들었습니다 (이 이미지에 링크 할 수있는 충분한 점수가 없습니다). 나는 전설을 제외하고 이것에 매우 만족합니다. 범례는 알파벳순으로 정렬되어 내 선호 순서가 아닙니다 (위에서 아래로의 색상 레이어와 같은 순서). 나는 범례를 수동으로 설정하려고 시도하는 여러 가지 방법을 시도했지만, 지금까지 발견 한 모든 것은 단일 데이터 프레임을 플로팅하고 둘이 아닌 것처럼 플로팅 할 때 발견되었습니다.하나의 플롯에 2 개의 데이터 프레임을 그릴 때의 전설

scale_colour_manual을 사용하면이 유형의 플롯에 영향을주지 않는 것 같습니다. 다른 방법이 있습니까?

다음은 위에서 설명한 동일한 동작을 제공하는 매우 간단한 작업 예제입니다.

data1 = data.frame(x = seq(0,20), y = c(1,4,-5,-9,-4,0,3,6,-4,3,-2,-5,8,2,1,6,7,-9,8,-4,0)) 
data2 = data.frame(x = seq(0,20), y = seq(0,20)) 

q = ggplot(NULL, aes(x = x, y = y)) 
q = q + geom_line(data = data1) 
q = q + geom_line(data = data2) 

감사합니다, 제인


답장을 보내 주셔서 감사합니다하지만 난 아직도 내가하고 싶은 그래프를 받고 있지 않다. 다음은 제가 지금까지 왔던 가장 가까운 곳의 링크입니다 positive and negative values - legend not as required. 이 플롯의 경우 다른 geom_areageom_line 위치를 사용하면서 두 개의 개별 데이터 프레임을 사용했습니다. 플롯의 긍정적 인 부분에 대해 내가 사용하고 있습니다 :

geom_area(data = prod.data, position = "identity", alpha = 0.8) 
geom_line(data = prod.data, position = "identity") 

와 플롯의 부정적인 부분에 대해 내가 사용하고 :

geom_area(data = cons.data, position = "stack", alpha = 0.8) 
geom_line(data = cons.data, position = "stack") 

그러나, 원래의 질문에 설명 된대로 내가없는 것 같다 전설의 순서에 대한 통제.

geom_area(position = "stack", alpha = 0.8) 
geom_line(position = "stack") 

을 나는 전설 순서를 제어 할 수 있지만 내가 원하는만큼 실제 플롯되지 않습니다 : 내가 데이터 프레임을 결합하는 시도와 요소의 순서를 설정, 여기에 내가 사용. 다음은 그래프 positive and negative values - graph not as required입니다.

저는 양자 역학 플래시백이 있습니다 :-) 그래서 더 이상의 도움을 주시면 대단히 감사하겠습니다.

+0

'반응'열의 수준을 'data $ Reaction = factor (data $ Reaction, levels = c ("C", "A", "B", "D"), ordered = T)와 같이 설정하십시오. 어디 C, A, B, D는 당신의 전설에서 원하는 순서입니다 ... – Arun

+0

그리고 btw, 당신이 보여 준 더미 데이터에 대한 당신의이 음모는 범례를 생산하지 않습니다. – Arun

답변

1

일반적으로 ggplot은 데이터를 하나의 데이터 프레임으로 결합 할 때 가장 잘 작동합니다. 제공된 예는 다소 혼란 스럽습니다 - 서면에 전설이 없기 때문에 전설이 무엇을 원하는지 확실하지 않습니다. 나는 그것에 대해 가고 싶어하는 방법은 데이터 프레임을 결합하는 것입니다 : 당신은 다음 범례를 주문하는 표준 방법 중 하나를 사용할 수 있습니다

data1$group <- 1 
data2$group <- 2 
data3 <- rbind(data1, data2) 
data3$group <- factor(data3$group) 
q <- ggplot(data3, aes(x = x, y = y, group = group, color = group)) 
    + geom_line() 

. 덜 자동적이지만 보통의 범례보다 우수 할 경우 새로운 data.framegeom_text 호출을 사용하여 각 줄에 수동으로 레이블을 지정할 수 있습니다.

전설은, 기본적으로, 그래서 전설 순서를, 요인의 순서로 정렬됩니다, 당신은 수동 (factor

data3$group <- reorder(data3$group, levels = c(2, 1), ordered = TRUE) 

를 사용하거나 reorder 및 기능을 사용하여 요소를 주문해야 역방향 알파 순서를 원할 경우 sort() 또는 rev(sort())).예를 들어, mean 또는 max y 값으로 계수를 정렬하려면 다른 열의 기능과 함께 reorder을 사용할 수도 있습니다.

+0

(+1) 좋은 편집. 내가 지울거야. 그것은 불필요합니다. – Arun

관련 문제