이것은 상당히 기본적인 질문처럼 보이지만 비교적 ggplot2에 익숙하지 않아 이것을 알아낼 수없는 것 같습니다. 내가 여기서 오해하고있는 "문법"에 대한 기본적인 것이 있다면 누군가가 나를 올바른 방향으로 가르 칠 수 있다면 좋을 것입니다. 또는이 레이블을 변경하는 방법을 알려 주면 좋을 것입니다 ...
이 (가짜) 데이터가 있다고 가정하십시오.
avgTerms <- data.frame(itNum = seq(1,15),
i15 = runif(15,5,7),
i20 = runif(15,5.5,7.5),
i25 = runif(15,4,7),
i30 = runif(15,6,8))
다음과 같이 기본 선 플롯을 만듭니다.
#colour palette (colorblind-friendly)
cbb <- c("#000000", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7")
#plot
avgTermsplot <- ggplot(data=avgTerms, aes(itNum, avgTerms[,2]))
avgTermsplot <- avgTermsplot + geom_line(aes(itNum, avgTerms[,2], colour=cbb[2]))
avgTermsplot <- avgTermsplot + geom_line(aes(itNum, avgTerms[,3], colour=cbb[3]))
avgTermsplot <- avgTermsplot + geom_line(aes(itNum, avgTerms[,4], colour=cbb[4]))
avgTermsplot <- avgTermsplot + geom_line(aes(itNum, avgTerms[,5], colour=cbb[5]))
avgTermsplot <- avgTermsplot + labs(x="Iteration Number", y="Avg # of Tags Applied")
print(avgTermsplot)
보시다시피 범례의 레이블은 색상 코드입니다. 유용하지 않다. 나는 그들이 data.frame의 열 이름이되기를 원합니다. (마찬가지로, 그들은해야한다 i15
, i20
내가 벡터에서에 할당하려고 사물의 무리를 해봤 등) names(avgTerms)[2:5]
하지만 난 모두 여기에 표시되지 않도록 것들 중 어느 것도, 제대로 작동하지 않습니다. 문자형 벡터에서 범례 레이블을 할당하는 간단한 방법이 있습니까?
도움을 주셔서 대단히 감사합니다.
에 긴 형식의 데이터를 사용하는 것이 좋습니다 ggplot2
. 따라서 먼저 데이터를 녹이십시오.
library(reshape2)
avgTerms.m <- melt(avgTerms, id.vars = "itNum")
그런 다음 다음을 기준으로 색상을 할당합니다 variable
.
ggplot(data = avgTerms.m, aes(itNum, value, colour = variable)) +
geom_line() +
labs(x = "Iteration Number", y = "Avg # of Tags Applied") +
scale_colour_manual(values = cbb)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다