成对图中的着色点

时间:2013-03-24 14:32:12

标签: r plot

我想基于某些行索引在一对图中着色点。这是我用于绘制1个变量与另一个变量的代码。

cases<-which(rownames(data_no_na) %in% colnames(tumor_data))
controls<-which(rownames(data_no_na) %in% colnames(control_data))

plot(y=range(pca[,1]),x=range(pca[,2]),type='n',xlab="Principle Component 2",ylab="Principle Component 1", main="Iterative Thresholding Sparse PCA")

points(y=pca[cases,1], x=pca[cases,2], col = 'red' )
points(y=pca[controls,1], x=pca[controls,2], col = 'blue' );

简单的配对图如下:

pairs(pca[,1:3])

编辑:示例:

cases<-1:10
controls<-11:20

pca<-matrix(c(rnorm(3*10,0,1),rnorm(3*10,5,1)),nrow=20,ncol=3)

2 个答案:

答案 0 :(得分:19)

这样的东西?

cols <- character(nrow(iris))
cols[] <- "black"

cols[iris$Species %in% c("setosa","versicolor")] <- "blue"
cols[iris$Species == "virginica"] <- "red"
pairs(iris,col=cols)

答案 1 :(得分:1)

我不确定@Roland的答案是否适用于某些版本,但至少在我的Windows R 3.4.2中,它不是。

函数对需要many arguments。其中一些用于指示映射到对角线,上部和下部面板的功能。默认情况下,它使用绘图(点)函数。

此函数有一个参数bg,用于指定带有它的标记的填充颜色,如pch = 21

此外,使用unclass可以更有效地完成颜色映射。例如,使用两级因子变量:

colors <- c('black', 'red')[unclass(factor_variable)]

然后,这就是魔术:

pairs(data, bg=colors)