我想基于某些行索引在一对图中着色点。这是我用于绘制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)
答案 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)