2017-03-06 1 views
0

다른 세그먼트 색상을 사용하여 단계 플롯을 그리려고합니다. 나는 다음을 시도, 그러나 이것은 마지막 세그먼트 보여줍니다세그먼트에 다른 색상으로 geom_step을 사용하여 단계 플롯을 얻는 방법

library(ggplot2) 

mcgwh <- structure(list(Technology = c("FOS", "WOOD", "NUCL", "HYD", "HYDS","EWI", "WPV", "WPV"), MC = c(0.00909452733164008, 0.0216749226571617,  0.0473803148589957, 0.05619182757182, 0.070613003340574, 0.0854965730717766,  0.156860794757306, 0.156860794757306), Capacity = c(0, 1190.45103330156,  1419.2619999981, 27551.2619999981, 44237.2619999981, 65110.2619999981,  66943.2619999981, 67990.7380000019)), .Names = c("Technology", "MC", "Capacity"), class = "data.frame", row.names = c(NA, 8L)) 

ggplot(data = mcgwh, aes(x = Capacity)) + geom_step(aes(y = MC,colour = factor(Technology))) 
+1

gsplot (data = mcgwh, aes (x = Capacity)) + geom_path (aes (y = MC, color = factor (기술), group = 1))'? – lukeA

+0

위의 대답은 각 지점의 직통 경로를 원할 경우 작동합니다. 단계를 원한다면 아래에 제공된 대답을 참조하십시오. – Djork

+0

예 아니요. R.S.의 솔루션 나는 다음과 같은 일을 할 수 있고 수직선을 검게하고 수평선을 채색한다. 예를 들어, 나는 그것을 관리하지 않는다 : geom_path (aes (x = Capacity, y = MC, color = 기술)) – arnyeinstein

답변

2

당신이 쉽게 aes(colour = factor(Technology)을 할당하여 geom_step에서이 작업을 수행 할 수 있다고 생각합니다. geom_point합니다 (AES에 복용

사용 geom_step와 함께 geom_point, 색상 = 계수 (기술) 당신이 원하는 경우 단계 라인 색상으로

ggplot(data = mcgwh, aes(x = Capacity, y = MC)) + geom_step() + geom_point(aes(colour = Technology)) 

enter image description here

코딩 : 당신은 두 가지 옵션이 있습니다. 기술을 사용하면 이전 포인트에서 수평으로 다음 포인트로 수평으로 연결할 (x = Capacity, y = MC) 점으로 더미 간격 항목을 만들어야합니다. 기술 (레이블)과 MC (y 변수) 각 2 x 1에서 : (nrow (mcgwh) -1) 및 용량 (X의 varicable)이 각 2 배 : nrow (mcgwh)

mcgwh2 <- cbind.data.frame(c(rep(mcgwh$Technology[1:(nrow(mcgwh)-1)], each=2), mcgwh$Technology[nrow(mcgwh)]), c(rep(mcgwh$MC[1:(nrow(mcgwh)-1)], each=2), mcgwh$MC[nrow(mcgwh)]), c(mcgwh$Capacity[1], rep(mcgwh$Capacity[2:nrow(mcgwh)], each=2))) 
colnames(mcgwh2) <- c("Technology", "MC", "Capacity") 
ggplot(data = mcgwh2) + geom_path(aes(x = Capacity, y = MC, colour = Technology, group=1)) 

enter image description here

또는 당신이 좋아 다른 색상으로 포인트를 연결하려는 의미 교대

ggplot(data = mcgwh2) + geom_step(aes(x = Capacity, y = MC)) + geom_line(aes(x = Capacity, y = MC, colour = Technology)) 

enter image description here

+0

THanks! 그룹 = 1은 무엇을합니까? 또는 그 문서를 어디에서 찾을 수 있습니까? – arnyeinstein

+0

@ user3270634 group = 1은 모든 점을 연결하는 단일 행을 나타냅니다. http://docs.ggplot2.org/current/aes_group_order.html. 만족 스러우면 대답을 수락하여 표시하십시오. – Djork

관련 문제