我有下面的数据框,我只想绘制相关矩阵的一部分。我特别想只绘制最下面一行(X6和变量X1-X5之间的相关性)。有没有方法使用相关图来完成这一点?如果没有,我如何完成这一点?我希望重要性也能显示在图上。
df <- data.frame(replicate(10,sample(0:1,1000,rep=TRUE))) cor.plot(df[,c("X1", "X2", "X3", "X4", "X5", "X6")])
o8x7eapl1#
#calculate correlation corx6 <- cor(x = df$X6, y =df[1:5]) corx6 # to show label (X6) in the plot rownames(corx6)<-'X6' # plot correlation matrix library(corrplot) corrplot(corx6 ,addgrid.col = T ,type = 'upper' ,addCoef.col = T ,number.cex = .7 ,diag = T ,tl.cex = .9 )
vql8enpb2#
如果你想用另一种方法来给整个单元格着色(类似于psych::cor.plot(),但与corrplot::corrplot()不同),你可以创建一个image图(尽管在这里,使用fields库来添加图例,否则用image(...)替换fields::image.plot(...)):
psych::cor.plot()
corrplot::corrplot()
image
fields
image(...)
fields::image.plot(...)
# data df <- data.frame(replicate(10,sample(0:1,1000,rep=TRUE))) cors <- cor(df[,c("X1", "X2", "X3", "X4", "X5", "X6")]) # plot fields::image.plot(x = 1:6, y = 1, z = as.matrix(cors[,6]), axes = FALSE, xlab = "", ylab = "") text(sprintf("%.2f", cors[,6]), x = 1:6, y = 1, col = "white") axis(1, at = 1:6, label = paste0("X", 1:6), tick = FALSE)
2条答案
按热度按时间o8x7eapl1#
vql8enpb2#
如果你想用另一种方法来给整个单元格着色(类似于
psych::cor.plot()
,但与corrplot::corrplot()
不同),你可以创建一个image
图(尽管在这里,使用fields
库来添加图例,否则用image(...)
替换fields::image.plot(...)
):