使用 R 为 corrplot 中的每一行添加颜色
Posted
技术标签:
【中文标题】使用 R 为 corrplot 中的每一行添加颜色【英文标题】:Add a color for each row in a corrplot with R 【发布时间】:2021-12-06 06:16:40 【问题描述】:我想为 corrplot 的每个“行”添加颜色,但我还没有找到任何解决方案。
我的代码如下所示:
#install.packages("corrplot")
library("corrplot")
df <- matrix(runif(60, 20, 30), 8)
Labels <- c("var1", "var2", "var3", "var4", "var5", "var6", "var7", "var8")
LabelColRow <- c("red", "blue", "green", "yellow", "purple", "black", "grey")
rownames(df) <- Labels
colnames(df) <- Labels
corrplot(df,
is.corr = FALSE,
method = "circle",
mar = c(2, 1, 3, 1),
addgrid.col = "NA",
cl.pos = "n",
tl.cex = 0.75,
tl.col = "black",
tl.srt = 360,
tl.offset = 0.9,
tl.pos = "lt"
)
所以基本上我希望 var1 的“行”是红色的,var2 的行是蓝色的,等等。
编辑:
【问题讨论】:
您的示例不起作用,您能否提供所需输出的示例?很难弄清楚你到底想要什么 我刚刚在我的编辑中添加了一个示例。该代码对我有用,即使在新会话中也是如此。它在哪里停止为您工作? 【参考方案1】:corrplot
似乎没有提供按行着色的功能。另一种方法是在ggplot
中构建图表。当然还有更多工作要做,但它允许灵活地为行着色。
作为解决方案的开始:
df %>%
as.data.frame() %>%
rowid_to_column() %>%
pivot_longer(-rowid) %>%
ggplot() +
geom_point(aes(x = name, y = rowid, size = value, colour = factor(rowid)) ) +
geom_text(aes(x = name, y = rowid, label = round(value,0))) +
scale_size(range = c(0, 20)) +
scale_colour_manual(values = c("blue", "green", "red", "orange", "grey", "purple", "darkblue", "black", "green")) +
guides(colour = "none", size = "none") +
labs(x = NULL, y = NULL)
【讨论】:
更好!我不知道 ggplot 提供了这样的东西,但我不能说我很惊讶 :) 非常感谢。以上是关于使用 R 为 corrplot 中的每一行添加颜色的主要内容,如果未能解决你的问题,请参考以下文章