Dear sir/madam,
I need to make a corrplot by manually calculated results.
For example,
A B C
A 0.00 0.43 0.32
B 0.43 0.00 0.23
C 0.32 0.23 0.00
Actually, this is my exact result. I want the graph as like attached image
Welcome to the community!
First of all, why are the diagonals zero instead of being one?
Second, you can plot using heatmap
.
Example:
text_data <- "A B C
A 0.00 0.43 0.32
B 0.43 0.00 0.23
C 0.32 0.23 0.00"
correlation_matrix <- as.matrix(x = read.table(text = text_data,
header = TRUE))
# full plot
heatmap(x = correlation_matrix,
Rowv = NA,
Colv = NA,
distfun = NA,
hclustfun = NA,
symm = TRUE,
revC = TRUE,
scale = "none")
# lower triangular
lower_correlation_matrix = correlation_matrix
lower_correlation_matrix[upper.tri(x = lower_correlation_matrix)] = NA
heatmap(x = lower_correlation_matrix,
Rowv = NA,
Colv = NA,
distfun = NA,
hclustfun = NA,
symm = FALSE,
revC = TRUE,
scale = "none")
Created on 2021-03-22 by the reprex package (v1.0.0)
Hope this helps.
1 Like
Thank you so much, it was a huge confusion to me. now cleared. Thank you so much again
greeting. how can I show the value on the graph sir?
Unfortunately, the gradient may not be possible with heatmap
. At least I couldn't find a way.
You can use ggplot2
to do what you want:
text_data <- "A B C
A 0.00 0.43 0.32
B 0.43 0.00 0.23
C 0.32 0.23 0.00"
correlation_matrix <- read.table(text = text_data,
header = TRUE)
library(ggplot2)
library(tibble)
library(tidyr)
correlation_matrix %>%
rownames_to_column(var = "row_names") %>%
pivot_longer(cols = -row_names,
names_to = "column_names",
values_to = "correlation_values") %>%
ggplot(mapping = aes(x = row_names,
y = column_names)) +
geom_tile(mapping = aes(fill = correlation_values)) +
geom_label(mapping = aes(label = correlation_values))
Created on 2021-03-23 by the reprex package (v1.0.0)
Hope this helps!
1 Like
system
Closed
7
This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.
If you have a query related to it or one of the replies, start a new topic and refer back with a link.