gpt4 book ai didi

r - plot(x,y,col= ) 在 R 中工作错误?

转载 作者:行者123 更新时间:2023-12-04 23:50:06 25 4
gpt4 key购买 nike

我在理解 plot 中的 col 参数如何工作时遇到问题。

让我们先看看这个:

plot(collection[,"x"], collection[,"y"], 
col=rainbow(21300)[order(collection[,"y"])],pch=".")

enter image description here

颜色几乎与 y 轴对齐,但不完全对齐。

现在让我们这样做:
plot(collection[,"x"], collection[,"y"],
col=rainbow(21300)[order(collection[,"x"])],pch=".")

我希望颜色从左到右渐变,因为我在与表示 x 轴的数据相同的数据上对它们进行排序。

但不,这是一个完全的困惑。

那么它是怎样工作的?

enter image description here

最佳答案

也许您的数据一开始就已经按 y 值(或接近的值)排序了。 col=参数按点出现的顺序为您绘制的每个点分配颜色。当您这样做时order()您正在返回属于每个位置的元素的索引。如果您的数据已经排序,这与当前位置不会有太大不同。但如果不是,这就是您重新排序它的方式。这不是值本身的顺序。而不是做 order() ,您可能应该使用 rank() .这给出了每个元素就地的顺序。

这是一些示例数据

y<-cumsum(runif(1000, -.5, 1))
x<-sin(seq(1:length(y))/7+rnorm(length(y),.5,.1))

你会看到
plot(x,y, col=rainbow(length(y))[order(y)], main="order y")
plot(x,y, col=rainbow(length(y))[order(x)], main="order x")

enter image description here

y 的顺序看起来没问题,因为数据基本上是按 y 顺序开始的。 x 看起来很疯狂,因为当您按 x 对颜色进行排序时,您并没有按 x 对 x 值本身进行排序。你可以做
plot(x,y, col=rainbow(length(y))[rank(y)], main="rank y")
plot(x,y, col=rainbow(length(y))[rank(x)], main="rank x")

enter image description here

获得更像您期望的情节。或者,您也可以订购数据
plot(x[order(y)],y[order(y)], col=rainbow(length(y)), main="data y")
plot(x[order(x)],y[order(x)], col=rainbow(length(y)), main="data x")

enter image description here

关于r - plot(x,y,col= ) 在 R 中工作错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24580770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com