here之前已经问过这个问题...但是,我无法适应我的代码。
我正在尝试使用对称矩阵数据制作Barplot。这是一些示例代码:
n <- 5 # no of rows
p <- 5 # no of columns
# Create matrix of values
mat <- matrix(runif(n*p, 0, 1), nrow=n) # create matrix
colnames(mat) <- paste0("x", 1:p) # column names
rownames(mat) <- paste0("x", 1:nrow(mat)) # row names
diag(mat) <- 0 # set diagonals to 0
mat <- (mat+t(mat))/2 # make matrix symmetrical
# Base-R barplot:
barplot(mat, beside = T,
col = c("red","green", "yellow", "blue", "black"))
这将产生如下内容:
但是我不确定我将如何实现这一目标。以下是我的处理方法,但我不确定:
library(ggplot2)
ggplot(mat, aes(x = variable names, y = values)) +
geom_col(aes(fill = values)) +
scale_fill_gradient2(low = "floralwhite",
high = "dodgerblue4") +
theme_minimal() +
theme(axis.title.y = element_text(angle = 0, vjust = 0.5)) +
coord_flip()
但是由于mat
是矩阵格式,因此无法执行以上操作,而且我不知道要把什么准确地放在美学上?
有什么建议吗?