I want to add a colour to each "row" of the corrplot but I haven't found any solution yet.
My code looks like this:
#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"
)
So basically I want the "row" of var1 to be red, the row for var2 blue, etc.
CodePudding user response:
It doesn't look like corrplot
offers the functionality to colour by row. The alternative would be to build the chart in ggplot
. More work, for sure, but it allows the flexibility to colour rows.
As a start of a solution:
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)