我在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都将为黑色
答案 0 :(得分:0)
如果我说得对,你想绘制两个数据系列。但是,您正在做的是使用col
参数绘制一个数据系列,这会影响type='b'
的点。
此外,如果您的示例数据使用的colnames
与您在plot
命令中使用的不同function
(net.trips vs. num.trips),则会造成混淆。
您可以编写一个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)
,将您的数据拆分为子数据集并为每个数据集绘制一行:
Get()
这不是最优雅的方式,但它会起作用。