Contour (Matrix)

Authors

[Editor] Hu Zheng;

[Contributors]

The contour map (matrix) is a graph that displays three-dimensional data in a two-dimensional form

Setup

  • System Requirements: Cross-platform (Linux/MacOS/Windows)

  • Programming language: R

  • Dependent packages: data.table; jsonlite; ggplot2; reshape2; ggisoband; cowplot

# Install packages
if (!requireNamespace("data.table", quietly = TRUE)) {
  install.packages("data.table")
}
if (!requireNamespace("jsonlite", quietly = TRUE)) {
  install.packages("jsonlite")
}
if (!requireNamespace("ggplot2", quietly = TRUE)) {
  install.packages("ggplot2")
}
if (!requireNamespace("reshape2", quietly = TRUE)) {
  install.packages("reshape2")
}
if (!requireNamespace("ggisoband", quietly = TRUE)) {
  install.packages("ggisoband")
}
if (!requireNamespace("cowplot", quietly = TRUE)) {
  install.packages("cowplot")
}

# Load packages
library(data.table)
library(jsonlite)
library(ggplot2)
library(reshape2)
library(ggisoband)
library(cowplot)

Data Preparation

The loaded data is a matrix.

# Load data
data <- data.table::fread(jsonlite::read_json("https://hiplot.cn/ui/basic/contour-matrix/data.json")$exampleData$textarea[[1]])
data <- as.data.frame(data)

# convert data structure
data <- as.matrix(data)
colnames(data) <- NULL
data3d <- reshape2::melt(data)
names(data3d) <- c("x", "y", "z")

# View data
head(data3d)
  x y   z
1 1 1 100
2 2 1 101
3 3 1 102
4 4 1 103
5 5 1 104
6 6 1 105

Visualization

# Contour (Matrix)
complex_general_theme <- 
  theme(text = element_text(family = "Arial"),
        plot.title = element_text(size = 12,hjust = 0.5),
        axis.title = element_text(size = 12),
        axis.text = element_text(size = 10),
        axis.text.x = element_text(angle = 0, hjust = 0.5,vjust = 1),
        legend.position = "right",
        legend.direction = "vertical",
        legend.title = element_text(size = 10),
        legend.text = element_text(size = 10))

p1 <- ggplot(data3d, aes(x, y, z = z)) +
  geom_isobands(
    alpha = 1,
    aes(color = stat(zmin)), fill = NA
  ) +
  scale_color_viridis_c() +
  coord_cartesian(expand = FALSE) +
  theme_bw() +
  complex_general_theme

p2 <- ggplot(data3d, aes(x, y, z = z)) +
  geom_isobands(
    alpha = 1,
    aes(fill = stat(zmin)), color = NA
  ) +
  scale_fill_viridis_c(guide = "legend") +
  coord_cartesian(expand = FALSE) +
  theme_bw() +
  complex_general_theme

plot_grid(p1, p2, labels = c("A", "B"), label_size = 12)
FigureΒ 1: Contour (Matrix)

Yellow represents the highest, dark purple represents the lowest, the height scale range is 90-190.