2

我正在用几条线/系列制作一个线图。我希望一行/系列中的每个点都有不同的字符。

我目前拥有的代码类似于:

x <- rep(1:5, 4) * rep(rnorm(5), each = 4)
x <- matrix(x, 5, 4)
matplot(x, type = "b", pch = 1:4)

但是,“pch”仅允许您更改用于一个系列中所有点的字符。有没有办法单独控制每个点?

非常感谢!

4

2 回答 2

3

plot允许pch系列中的每个点不同;matplot没有(它只允许每个系列使用不同的)。所以你将不得不使用plot//而不是points.linesmatplot

例如

xs <- 1:nrow(x)
cols <- c('blue', 'red', 'black', 'green', 'yellow')

# set up empty plot with the right limits
matplot(x, type='n')
for (i in 1:ncol(x))
  lines(xs, x[, i], type='b', pch=(i - 1)*(1:nrow(x))+1, col=cols[i])
于 2015-07-24T12:39:21.107 回答
2

如果您尝试一个简单的示例:plot(x=c(1,2,3,4),y=c(5,5,5,5),type="b",pch=c(1,2,3,4))

你会看到每个点都有不同的 pch。因此,如果您希望每个点和每条线都有不同的 pch,请尝试制作一个矩阵,其中线将代表每条线的 pch。

在@mathematical.coffee 回答之后,我阅读了 ?matplot。不幸的是,你不能为每个点设置不同的 pch,但对于 matplot 中的每个图,你不能有不同的 pch。

于 2015-07-24T12:25:26.487 回答