无法使用R中的Plot绘制图表

时间:2017-09-02 22:55:00

标签: r

 plot( table1$Petal.Length, table1$Petal.Width, type="l",  col="red" )
 plot( table1$Petal.Length, table1$Petal.Width, type="l",  col="Green" )

 par(new=TRUE)
 plot( table1$Petal.Length ~ table1$Sepal.Width,table1$Petal.Width, type="l",  
 col="Green" )

当我在上面运行代码时,我得到了错误

  Error in FUN(X[[i]], ...) : numeric 'envir' arg not of length one

1 个答案:

答案 0 :(得分:1)

您收到此错误是因为您尝试在二维图中绘制三个变量。 def sequence(f, g): def sequenced_func(): f() g() return sequenced_func def func1(): print('func1') def func2(): print('func2') sequenced_func = sequence(func1, func2) 的第三个参数table1$Petal.Width无效,因为plot只需plotx。此外,y制作的线条图似乎没有意义。 type="l"给出散点图(默认值):

type="p"

always returns you a newly constructed

此外,前两个table1=iris plot( table1$Petal.Length ~ table1$Sepal.Width, type="p", col="Blue" ) 中的Petal.Length与第三个plot的处理方式不同,因为Petal.Length被视为x变量,Petal.Width y变量。公式table1$Petal.Length ~ table1$Sepal.Width表示"将左侧变量(y)绘制在右侧(x)"。因此,Petal.Length在这种情况下是y变量。

有一些方法可以在一个散点图中表示三个变量,但如果它们都是连续的,则有点棘手。一种方法是按间隔离散第三个变量,看看它是如何随其他变量而变化的。例如,下面的图表非常有用:

table1$Petal.Width_factor = cut(table1$Petal.Width, breaks = 4)

plot( Petal.Length ~ Sepal.Width, type="p",  
      col=Petal.Width_factor, data=table1 )

legend("topright", c(levels(table1$Petal.Width_factor)), 
       pch = 1, col = 1:4, title = "Petal Width")

enter image description here

请注意,您可以使用data=table1参数指定数据集,这样就不必为每个变量键入table1$