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.