r - 如何将矩阵子组链接到颜色列表?在 R?
问题描述
因此,我有一个从 1 到 6 的数字子组,我想将其链接到颜色列表,但似乎无法正确链接它们。
我的代码看起来像子组矩阵
PCA_Model Subgroup
ACTL6A Numeric,4 3
ADAM9 Numeric,16 4
ADAMTS1 Numeric,4 3
ADCY7 FALSE 3
AIMP2 Numeric,8036 3
ALKBH7 Numeric,4 3
ALOX5AP Numeric,16 1
AMPD3 Numeric,4 1
APITD1 FALSE 1
我正在尝试使用这段代码链接它们
PCA_Model <- prcomp(t(K_means_Model$centers))
samples_names <- K_means_Model$cluster
# Bind sample names to their subgroup
pca_matrix <- cbind(PCA_Model, "Subgroup"=samples_names)
# Link dataframe to color
colours <- as.character(factor(pca_matrix[,"Subgroup"], levels = paste0("C", 1:6),labels = c("blue",
"red", "yellow", "green", "black", "pink")))
但是每次我尝试链接颜色对象时都会产生 na 值。有人能提出更好的方法吗?
所有帮助将不胜感激
解决方案
我会做一些事情
df <- data.frame(
PCA_model = c("Numeric,4","Numeric,16","Numeric,5","Numeric,1","Numeric,1","Numeric,3","Numeric,64","Numeric,123"),
Subgroup= c(3,4,3,3,1,2,5,6))
> df
PCA_model Subgroup
1 Numeric,4 3
2 Numeric,16 4
3 Numeric,5 3
4 Numeric,1 3
5 Numeric,1 1
6 Numeric,3 2
7 Numeric,64 5
8 Numeric,123 6
# generate the vector of colours
colo <- c(brewer.pal(6,"Set3")) # using RColorBrewer (library(RColorBrewer))
colo <- c(brewer.pal(length(unique(df$Subgroup)),"Set3")) # if you don't know how many colours you need
colo <- c("blue","red", "yellow", "green", "black", "pink")) # like you did
names(col) <- unique(df$Subgroup)
> colo
3 4 1 2 5 6
"#8DD3C7" "#FFFFB3" "#BEBADA" "#FB8072" "#80B1D3" "#FDB462"
然后,您可以传递colo
给 ggplot 或其他库,颜色将遵循df$Subgroup
推荐阅读
- json - 我希望 Grafana 计算成功与失败 HTTP 响应的比率,并将这两个指标绘制在一个图表中。我怎样才能做到这一点?
- r - 尽管使用了逗号,但删除带有 complete.cases、未定义列错误的 NA
- java - match() 方法的模式匹配无法正常工作
- python - ValueError:由 4 减去 5 导致的负尺寸大小
- ffmpeg - ffmpeg strftime 对 Windows 没有影响
- node.js - Firebase 的云函数 - getaddrinfo EAI_GAIN site.com:443
- php - 在php中的几个间隔之间生成一个随机数
- wordpress - wordpress 不断重定向到已删除的页面
- sql-server - 通过链接到 SQL 服务器数据库的 MS Access 以多对多关系(中间表)插入数据
- azure-active-directory - 我是否可以在用户通过 Azure AD SSO 进行身份验证的外部网站/应用程序的 iFrame 中使用 Sharepoint 视图