[R情节将绘制彩色点,但没有彩色线条
问题描述:
我在读该语句:在一个情节[R情节将绘制彩色点,但没有彩色线条
plot(net.trips~step, data=subset1, main="Speed = 1.60",type="b", col=subset1$run)
它将产生的时间序列数据的五个不同的图形(每一个为subset1$run
值)在五个不同的颜色与点。
然而,当我这样做让行:
plot(net.trips~step, data=subset1, main="Speed = 1.60",type="l", col=subset1$run)
我与每个数据系列的黑色,而不是五种不同颜色的曲线图。
为什么会发生这种情况,我该如何纠正它?
这里是我熟了一些示例数据:
RUN STEP NUM.TRIPS
1 1 2
1 2 4
1 3 3
2 1 5
2 2 2
2 3 7
应该有在相同的情节两个数据系列:
数据系列1:(1,2),(2,4),( 3,3)
数据系列2:(1,5),(2,2),(3,7)
什么情况是,如果使用点(type="b"
),数据序列1及数据序列2会有不同的颜色。
如果我使用线条(type="l"
),数据系列1和数据系列2都将是黑色的
答
如果我找不到您想要的图形,请绘制两个数据系列。但是,您正在做的是使用col
参数绘制一个数据系列,这会影响点数,如果type='b'
。
此外,如果您的示例数据与您在plot
命令(net.trips vs. num.trips)中使用的示例数据不同,使用colnames
会产生混淆。
你可以写一个function
,将您的数据拆分成子数据集,并绘制一条线每个:
subset1 <- data.frame(
run = c(1,1,1,2,2,2),
step = c(1,2,3,1,2,3),
net.trips = c(2,4,3,5,2,7)
)
plot.subdata <- function(x){
# create an "empty" plot first
plot(net.trips~step, data=x, type="n", main="Speed = 1.60")
# and fill it with dataseries subsetted by run
for(n in unique(x$run)){
lines(net.trips~step, data = subset(x, x$run == n), col = n)
}
}
plot.subdata(subset1)
这不是最优雅的方式,但它会奏效。
如果不知道“subset1”实际上是什么,就很难说。你能通过'dput'提供一个文件块吗? – thelatemail
请检查[mcve] –