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
答案 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
只需plot
和x
。此外,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")
请注意,您可以使用data=table1
参数指定数据集,这样就不必为每个变量键入table1$
。