I guess the problem is the drawing of the rectangle. Here I need some help. Thank you.
---
output:
pdf_document
documentclass: article
classoption: a4paper
geometry: margin=1cm
subparagraph: yes
header-includes: |
\usepackage{titlesec}
\titlespacing{\title}{0pt}{\parskip}{-\parskip}
title: "Example of Title to Body Text"
subtitle: Subtitle Places Here
---
\vspace{-5truemm}
\pagenumbering{gobble}
#``` {r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
library(draw)
library(ggplot2)
library(dplyr)
# ```
#```{r rectangle}
drawBox(x =2, y = 3.5, width = 2.5, height = 1)
#```
#```{r heatmap}
df <- data.frame(
test_id = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4),
test_nr = c(1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5,
1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 1, 1, 1, 1, 2, 2, 2, 2),
region = c("A", "B", "C", "D", "A", "B", "C", "D", "A", "B", "C", "D", "A",
"B", "C", "D", "A", "B", "C", "D", "A", "B", "C", "D", "A", "B",
"C", "D", "A", "B", "C", "D", "A", "B", "C", "D", "A", "B", "C", "D"),
test_value = c(3, 1, 2, 2, 2, 1, 2, 2, 3, 2, 2, 3, 2, 1, 2, 2, 1, 2, 3,
4, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 3, 2, 2, 2, 99, 99, 3, 3, 3, 3)
)
# named vector for heatmap
cols <- c("1" = "green",
"2" = "darkgreen",
"3" = "orange",
"4" = "red",
"99" = "black")
labels_legend <- c("1" = "very good",
"2" = "good",
"3" = "not so good",
"4" = "bad",
"99" = "NA")
df <- df %>%
filter(test_id==1)
ggplot(
df,
aes(region, test_nr)) +
geom_tile(aes(fill= factor (test_value))) +
geom_text(aes(label = test_value), size = 10, color = "white") + # text in tiles
scale_colour_manual(
values = cols,
breaks = c("1", "2", "3", "4", "99"),
labels = labels_legend,
aesthetics = c("colour", "fill")
) +
theme(text = element_text(size = 14)) + # this will change all text size
labs(title = "Test (Individual heatmap)", x = "Region", y = "Event") +
labs(fill = "Test") +
coord_fixed(ratio=1, clip="on") +
theme(axis.text.y = element_text(face = "bold", size = 12)) +
theme(axis.text.x = element_text(angle = 0, face = "bold", size = 12)) +
theme(axis.line = element_line(colour = "darkblue",
size = 1, linetype = "solid")
)
# ```
## Information
You can use the subfigure environment to display multiple plots side by side, though you may not want to place the rectangle under the same main caption as the heatmap.
---
output:
pdf_document:
extra_dependencies: "subfig"
documentclass: article
classoption: a4paper
geometry: margin=1cm
subparagraph: yes
header-includes: |
\usepackage{titlesec}
\titlespacing{\title}{0pt}{\parskip}{-\parskip}
title: "Example of Title to Body Text"
subtitle: Subtitle Places Here
---
\vspace{-5truemm}
\pagenumbering{gobble}
``` {r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
library(draw)
library(ggplot2)
library(dplyr)
```
```{r rectangle}
drawBox(x =2, y = 3.5, width = 2.5, height = 1)
```
```{r heatmap-data}
df <- data.frame(
test_id = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4),
test_nr = c(1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5,
1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 1, 1, 1, 1, 2, 2, 2, 2),
region = c("A", "B", "C", "D", "A", "B", "C", "D", "A", "B", "C", "D", "A",
"B", "C", "D", "A", "B", "C", "D", "A", "B", "C", "D", "A", "B",
"C", "D", "A", "B", "C", "D", "A", "B", "C", "D", "A", "B", "C", "D"),
test_value = c(3, 1, 2, 2, 2, 1, 2, 2, 3, 2, 2, 3, 2, 1, 2, 2, 1, 2, 3,
4, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 3, 2, 2, 2, 99, 99, 3, 3, 3, 3)
)
# named vector for heatmap
cols <- c("1" = "green",
"2" = "darkgreen",
"3" = "orange",
"4" = "red",
"99" = "black")
labels_legend <- c("1" = "very good",
"2" = "good",
"3" = "not so good",
"4" = "bad",
"99" = "NA")
df <- df %>%
filter(test_id==1)
```
```{r heatmap, fig.show="hold", fig.cap='Rectangle and Heatmap', fig.subcap=c('LEFT', 'RIGHT'), out.width='50%', fig.align = "center"}
drawBox(x =2, y = 3.5, width = 2.5, height = 1)
ggplot(
df,
aes(region, test_nr)
) +
geom_tile(aes(fill= factor (test_value))) +
geom_text(aes(label = test_value), size = 10, color = "white") + # text in tiles
scale_colour_manual(
values = cols,
breaks = c("1", "2", "3", "4", "99"),
labels = labels_legend,
aesthetics = c("colour", "fill")
) +
theme(text = element_text(size = 14)) + # this will change all text size
labs(title = "Test (Individual heatmap)", x = "Region", y = "Event") +
labs(fill = "Test") +
coord_fixed(ratio=1, clip="on") +
theme(axis.text.y = element_text(face = "bold", size = 12)) +
theme(axis.text.x = element_text(angle = 0, face = "bold", size = 12)) +
theme(
axis.line = element_line(
colour = "darkblue",
size = 1, linetype = "solid"
)
)
```
## Information
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.