【问题标题】:Scatter Plot Matrices散点图矩阵
【发布时间】:2014-11-09 02:11:21
【问题描述】:

我有一个矩阵 mat[n,m],我想使用 splom 来绘制 mat[,"col4"] 的散点图,作为所有其他列值的函数。此外,我想为存储在rownID[] 中的某些行号的点添加不同的颜色。我见过使用 splom 的示例,但它们会针对所有变量绘制所有变量,并使用列组来更改点的颜色。是否可以使用 splom (或其他 R 函数)做我想做的事?

例子:

set.seed(1)
mat <-  matrix(sample(0:100, 16), ncol=4)

dimnames(mat) <- list(rownames(mat, do.NULL = FALSE, prefix = "row"),
                          colnames(mat, do.NULL = FALSE, prefix = "col"))

mat
     col1 col2 col3 col4
row1   26   19   58   61
row2   37   86    5   33
row3   56   97   18   66
row4   89   62   15   42

rowID <- matrix(c(1,3), ncol=1, nrow=2)

感谢https://stackoverflow.com/a/16033003/1262767

我一直在使用 caret 包的 featurePlot 功能,但我不知道如何更改某些特定点的颜色(这就是我对 splom):

featurePlot(mat, mat$col4, plot = "scatter",
            ## Add some space between the panels
            between = list(x = 1, y = 1), main = "testSet",
            ## Add a background grid ('g') and a smoother ('smooth')
            type = c("g", "p", "s"))

【问题讨论】:

  • 这不是 R 代码。请提供您实际用于创建mat 的代码。
  • 你想要什么输出?仅包含 3 个散点图的面板 - “R”与其他 3 个?
  • 是的,就是这样。然后对某些特定行的点进行着色。
  • 刚刚用一些 R 代码编辑了我的帖子

标签: r scatter-plot


【解决方案1】:

这似乎不太适合splom。我认为你最好重塑你的数据并使用标准xyplot。例如

library(reshape2)
mm<-melt(cbind(data.frame(mat), high=1:nrow(mat) %in% rowID), c("col4","high"))
xyplot(col4~value|variable, mm, groups=high)

给了

【讨论】:

  • 如果我想将另一个组添加到row4 的色点,我该如何根据您的代码来做呢?谢谢
  • 我不清楚你的意思是什么。一般的想法是您需要在mat 数据中添加一列,以指示每行的颜色。在这个例子中,我cbind这样一个柱子在熔化之前;但你可以随心所欲地这样做。
  • 我的意思是:如果我想给row4分配不同的颜色,即另一个向量rowID2 matrix(4,ncol=1)?我需要添加另一列或更改您已添加的列?谢谢
  • 您不想添加额外的列;只是改变已经在哪里。您应该尝试使您在此站点上发布的每个问题都专注于特定问题。如果您有很多关于着色的问题,您可能应该提出一个新问题。在 cmets 中提出原始问题中未正确解决的问题不是一种好的形式。
  • 好的!在发布新问题之前,我会尝试更改代码以满足我的需要。作为旁注,您可以调整您的答案以解决这个额外的变量:在两个不同的向量(rowID(2 行)和 rowID2(1 行))中指定三种不同的颜色。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多