はい、これを行う 1 つの方法は、 を使用することggplot
です。
ggplot
データがdata.frame
フォーマットされている必要があります。これに、希望の色を示すdata.frame
列を追加します。col 変数はすでに色であるため、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()

より一般的には、各線分は異なる色にすることができます。次の例では、色を x 値にマッピングして、色が青から赤に滑らかに変化するプロットを作成します。
df <- data.frame(
x = 1:100,
y = rnorm(100,1,100)
)
ggplot(df, aes(x=x, y=y)) + geom_line(aes(colour=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])
}
