仅绘制R中矩阵中某些行的点

时间:2017-09-24 18:21:05

标签: r

我是R的新手,所以它可能非常基本,但我正在尝试将某些值的彩色点添加到矩阵的图表中。" m"。我需要从同一个矩阵添加点,但包含169到179范围内的值的行。我可以使用哪些代码?我试过了:

p <- which(m[,2]==169:179
## and
points (p, col="blue")

并且它不起作用。如何正确编写这些代码以将这些坐标以蓝色显示在图表上? 谢谢!

2 个答案:

答案 0 :(得分:1)

您可以尝试定义一个函数来测试数字是否介于两个值之间:

inbetween = function(x)
{
     return ( x >= 169 & x <= 179 )
}

然后使用sapply函数在m [,2]的每个值上调用它: ind = sapply( m[,2], inbetween ) 如果给定值在范围内,则根据给定值给出一个真或假的向量。 然后取p = m[ind,]将为您提供所选索引处的m行。

答案 1 :(得分:1)

如果您可以分享您的数据示例,那将是件好事。通常,从数据帧绘制数据(与矩阵相对)更有意义。我们可以使用预先安装的mtcars数据集来演示您的解决方案。

让我们首先看一下数据集中可用的数据:

summary(mtcars)

接下来,我们可以过滤我们想要显示的数据。在这种情况下,我们会过滤mtcars$mpg(名称为mpg的列),其值介于15和20之间。为方便起见,我们将此过滤后的数据框指定为新数据框。

mtcars_filtered <- mtcars[mtcars$mpg >= 15 & mtcars$mpg <= 20 , ]

最后,我们可以绘制数据。在这种情况下,我们希望mpg列为x值,hp为y值。 type用于指定我们希望如何显示它("p"表示点数),col用于指定颜色("blue"表示蓝色)。

plot(mtcars_filtered$mpg, mtcars_filtered$hp, type = 'p', col = 'blue')

希望这有帮助。