r图将绘制彩色点,但不是彩色线

时间:2017-08-11 03:16:28

标签: r plot

我在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都将为黑色

1 个答案:

答案 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()

这不是最优雅的方式,但它会起作用。

相关问题