繁体   English   中英

r plot将绘制彩色点,但不绘制彩色线

[英]r plot will plot colored points, but not colored lines

我在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'则会影响点。

此外,如果使用不同的样本数据是混乱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)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM