예, 이것을 수행하는 한 가지 방법은 ggplot
을 사용하는 것입니다.
ggplot
은 데이터가 data.frame
형식이어야합니다. 이 data.frame
에 원하는 색상을 나타내는 열 col
을 추가합니다. 안부 변수가 이미 색이므로 플롯이어서 ggplot
, geom_line
및 scale_colour_identity
로 구성된다
library(ggplot2)
df <- data.frame(
x = 1:100,
y = rnorm(100,1,100),
col = c(rep("red", 50), rep("black", 10), rep("red", 40))
)
ggplot(df, aes(x=x, y=y)) +
geom_line(aes(colour=col, group=1)) +
scale_colour_identity()
보다 일반적으로, 각 라인 세그먼트는 서로 다른 색상 일 수있다.
df <- data.frame(
x = 1:100,
y = rnorm(100,1,100)
)
ggplot(df, aes(x=x, y=y)) + geom_line(aes(colour=x))
그리고 당신은 기본 그래픽을 사용하여 주장하는 경우, 다음 사용 : 다음 예에서 나는 원활 파란색에서 빨간색으로 색상을 변경 플롯을주고, x 값에 색상을 매핑 segments
으로는 다음과 같습니다
df <- data.frame(
x = 1:100,
y = rnorm(100,1,100),
col = c(rep("red", 50), rep("black", 10), rep("red", 40))
)
plot(df$x, df$y, type="n")
for(i in 1:(length(df$x)-1)){
segments(df$x[i], df$y[i], df$x[i+1], df$y[i+1], col=df$col[i])
}
무엇, 아니'lattice' 솔루션? ;) – joran
세그먼트 솔루션에 대해 이것은 for 루프를 사용하는데, 이것은 OP와 같이'lines '을 여러 번 호출하는 것과 같습니다. 당신은 더 우아한 방법을 사용할 수 있습니다 :'with (df, segments (head (x, -1), head (y, -1), x [-1], y [-1], rep (c ("red" "파랑", "녹색"), c (50, 10, 40)))). – TMS
@ joran : 네가 농담에 빠졌음을 나는 안다. 그러나 격자는 여기에서 짧은 절름발이가되는 것 같다. 내 대답을 보라. – Aaron