R. 为数据框中的行范围分配颜色,生成 PCA 点图
R. Assign colors to row ranges in data frame producing a PCA dot plot
我有一个像这样的数据框 df1(实际上它有数千行):
SampleID PC1 PC2
SJ-27_SJ-27 0.0246128 0.0188152
SJ-28_SJ-28 0.0286733 -0.0145702
SJ-54_SJ-54 0.0344723 0.0236423
SJ-61_SJ-61 0.0265009 0.0202153
SJ-66_SJ-66 0.0303340 0.0071670
SJ-71_SJ-71 -0.0004866 -0.0037853
使用 R,我想绘制 PC1 与 PC2,例如:
plot(df1[,2], df1[,3])
但是我想根据行号给绘图的点赋予不同的颜色。例如,第 1-2 行为绿色,第 3-4 行为红色,第 5-6 行为灰色。我会在下面 link:
中得到这样的图像
https://www.biostars.org/p/271694/
一定有一个非常简单的方法可以做到这一点,但我找不到。非常感谢。
在 base R 中,您可以添加一列(或创建一个向量),其中包含人口组的因子变量,然后映射到颜色。使用您的示例数据:
df1$Grp <- factor(c("A", "A", "A", "B", "B", "B"))
plot(df1$PC1, df1$PC2, col = df1$Grp, pch = 16)
ggplot2
让您可以更好地控制颜色映射和自动图例:
library(ggplot2)
ggplot(df1, aes(PC1, PC2)) +
geom_point(aes(color = Grp)) +
theme_bw()
我有一个像这样的数据框 df1(实际上它有数千行):
SampleID PC1 PC2
SJ-27_SJ-27 0.0246128 0.0188152
SJ-28_SJ-28 0.0286733 -0.0145702
SJ-54_SJ-54 0.0344723 0.0236423
SJ-61_SJ-61 0.0265009 0.0202153
SJ-66_SJ-66 0.0303340 0.0071670
SJ-71_SJ-71 -0.0004866 -0.0037853
使用 R,我想绘制 PC1 与 PC2,例如:
plot(df1[,2], df1[,3])
但是我想根据行号给绘图的点赋予不同的颜色。例如,第 1-2 行为绿色,第 3-4 行为红色,第 5-6 行为灰色。我会在下面 link:
中得到这样的图像https://www.biostars.org/p/271694/
一定有一个非常简单的方法可以做到这一点,但我找不到。非常感谢。
在 base R 中,您可以添加一列(或创建一个向量),其中包含人口组的因子变量,然后映射到颜色。使用您的示例数据:
df1$Grp <- factor(c("A", "A", "A", "B", "B", "B"))
plot(df1$PC1, df1$PC2, col = df1$Grp, pch = 16)
ggplot2
让您可以更好地控制颜色映射和自动图例:
library(ggplot2)
ggplot(df1, aes(PC1, PC2)) +
geom_point(aes(color = Grp)) +
theme_bw()