我在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)
如果我使用points (type="b"),那么数据系列1和数据系列2将具有不同的颜色。
如果我使用行(type="l"),数据系列1和数据系列2都将为黑色
发布于 2017-08-11 14:41:36
如果我没弄错的话,你想绘制两个数据序列。但是,您所做的是使用col参数绘制一个数据序列,该参数会影响type='b'时的点。
此外,如果您的示例数据使用的colnames与您在plot命令中使用的不同(net.trips与num.trips),也会造成混淆。
您可以编写一个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)这不是最优雅的方式,但它会工作的。
https://stackoverflow.com/questions/45626402
复制相似问题