Katja Kozjek
NBIS, SciLifeLab
19-May-2025
Dashboards are a great way to share results from analyses with others
A new output format for creating dashboards from notebooks/ .qmd
files
format: dashboard
my-dashboard.qmd
---
title: "Immunotechnology Cake Club"
format: dashboard
---
```{r}
library(dplyr)
library(ggplot2)
library(gt)
```
```{r}
cake_data %>%
ggplot(aes(x = Gender, y = Score, fill = Gender)) +
geom_boxplot() +
theme_minimal() +
theme_bw() +
scale_fill_manual(values = c("#F5E8E1", "#D0BBA8")) +
labs(x = "Gender", y = "Score") +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
my-dashboard.qmd
---
title: "Immunotechnology Cake Club"
format: dashboard
---
```{r}
library(dplyr)
library(ggplot2)
library(gt)
```
```{r}
cake_data %>%
ggplot(aes(x = Gender, y = Score, fill = Gender)) +
geom_boxplot() +
theme_minimal() +
theme_bw() +
scale_fill_manual(values = c("#F5E8E1", "#D0BBA8")) +
labs(x = "Gender", y = "Score") +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
my-dashboard.qmd
---
title: "Immunotechnology Cake Club"
format: dashboard
---
```{r}
library(dplyr)
library(ggplot2)
library(gt)
```
```{r}
cake_data %>%
ggplot(aes(x = Gender, y = Score, fill = Gender)) +
geom_boxplot() +
theme_minimal() +
theme_bw() +
scale_fill_manual(values = c("#F5E8E1", "#D0BBA8")) +
labs(x = "Gender", y = "Score") +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
```{r}
cake_data %>%
ggplot(aes(x = Temperature, y = Score)) +
geom_line( color="darkgrey") +
geom_point(shape=21, color="black", fill="#DBD9DA", size=6) +
theme_bw() +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
my-dashboard.qmd
---
title: "Immunotechnology Cake Club"
format: dashboard
---
```{r}
library(dplyr)
library(ggplot2)
library(gt)
```
```{r}
cake_data %>%
ggplot(aes(x = Gender, y = Score, fill = Gender)) +
geom_boxplot() +
theme_minimal() +
theme_bw() +
scale_fill_manual(values = c("#F5E8E1", "#D0BBA8")) +
labs(x = "Gender", y = "Score") +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
```{r}
cake_data %>%
ggplot(aes(x = Temperature, y = Score)) +
geom_line( color="darkgrey") +
geom_point(shape=21, color="black", fill="#DBD9DA", size=6) +
theme_bw() +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
my-dashboard.qmd
---
title: "Immunotechnology Cake Club"
format: dashboard
---
```{r}
library(dplyr)
library(ggplot2)
library(gt)
```
```{r}
#| title: Who bakes better?
cake_data %>%
ggplot(aes(x = Gender, y = Score, fill = Gender)) +
geom_boxplot() +
theme_minimal() +
theme_bw() +
scale_fill_manual(values = c("#F5E8E1", "#D0BBA8")) +
labs(x = "Gender", y = "Score") +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
```{r}
#| title: How does outdoor temperature influence final score?
cake_data %>%
ggplot(aes(x = Temperature, y = Score)) +
geom_line( color="darkgrey") +
geom_point(shape=21, color="black", fill="#DBD9DA", size=6) +
theme_bw() +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
my-dashboard.qmd
---
title: "Immunotechnology Cake Club"
format: dashboard
---
```{r}
library(dplyr)
library(ggplot2)
library(gt)
```
```{r}
#| title: Who bakes better?
cake_data %>%
ggplot(aes(x = Gender, y = Score, fill = Gender)) +
geom_boxplot() +
theme_minimal() +
theme_bw() +
scale_fill_manual(values = c("#F5E8E1", "#D0BBA8")) +
labs(x = "Gender", y = "Score") +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
```{r}
#| title: How does outdoor temperature influence final score?
cake_data %>%
ggplot(aes(x = Temperature, y = Score)) +
geom_line( color="darkgrey") +
geom_point(shape=21, color="black", fill="#DBD9DA", size=6) +
theme_bw() +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
my-dashboard.qmd
---
title: "Immunotechnology Cake Club"
format:
dashboard:
logo: ../assets/images/cake-emoji.png
---
```{r}
library(dplyr)
library(ggplot2)
library(gt)
```
```{r}
#| title: Who bakes better?
cake_data %>%
ggplot(aes(x = Gender, y = Score, fill = Gender)) +
geom_boxplot() +
theme_minimal() +
theme_bw() +
scale_fill_manual(values = c("#F5E8E1", "#D0BBA8")) +
labs(x = "Gender", y = "Score") +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
```{r}
#| title: How does outdoor temperature influence final score?
cake_data %>%
ggplot(aes(x = Temperature, y = Score)) +
geom_line( color="darkgrey") +
geom_point(shape=21, color="black", fill="#DBD9DA", size=6) +
theme_bw() +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
my-dashboard.qmd
---
title: "Immunotechnology Cake Club"
format:
dashboard:
logo: ../assets/images/cake-emoji.png
---
```{r}
library(dplyr)
library(ggplot2)
library(gt)
```
```{r}
#| title: Who bakes better?
cake_data %>%
ggplot(aes(x = Gender, y = Score, fill = Gender)) +
geom_boxplot() +
theme_minimal() +
theme_bw() +
scale_fill_manual(values = c("#F5E8E1", "#D0BBA8")) +
labs(x = "Gender", y = "Score") +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
```{r}
#| title: How does outdoor temperature influence final score?
cake_data %>%
ggplot(aes(x = Temperature, y = Score)) +
geom_line( color="darkgrey") +
geom_point(shape=21, color="black", fill="#DBD9DA", size=6) +
theme_bw() +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
my-dashboard.qmd
---
title: "Immunotechnology Cake Club"
format:
dashboard:
logo: ./cake-emoji.png
---
```{r}
library(dplyr)
library(ggplot2)
library(gt)
```
## Row - Gender {height=70%}
```{r}
#| title: Who bakes better?
cake_data %>%
ggplot(aes(x = Gender, y = Score, fill = Gender)) +
geom_boxplot() +
theme_minimal() +
theme_bw() +
scale_fill_manual(values = c("#F5E8E1", "#D0BBA8")) +
labs(x = "Gender", y = "Score") +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
## Row - Temperature {height=30%}
```{r}
#| title: How does outdoor temperature influence final score?
cake_data %>%
ggplot(aes(x = Temperature, y = Score)) +
geom_line( color="darkgrey") +
geom_point(shape=21, color="black", fill="#DBD9DA", size=6) +
theme_bw() +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
my-dashboard.qmd
---
title: "Immunotechnology Cake Club"
format:
dashboard:
logo: ./cake-emoji.png
---
```{r}
library(dplyr)
library(ggplot2)
```
## Row - Gender {height=70%}
```{r}
#| title: Who bakes better?
cake_data %>%
ggplot(aes(x = Gender, y = Score, fill = Gender)) +
geom_boxplot() +
theme_minimal() +
theme_bw() +
scale_fill_manual(values = c("#F5E8E1", "#D0BBA8")) +
labs(x = "Gender", y = "Score") +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
## Row - Temperature {height=30%}
```{r}
#| title: How does outdoor temperature influence final score?
cake_data %>%
ggplot(aes(x = Temperature, y = Score)) +
geom_line( color="darkgrey") +
geom_point(shape=21, color="black", fill="#DBD9DA", size=6) +
theme_bw() +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
my-dashboard.qmd
---
title: "Immunotechnology Cake Club"
format:
dashboard:
orientation: columns
logo: ./cake-emoji.png
---
```{r}
library(dplyr)
library(ggplot2)
```
## Column - Gender
```{r}
#| title: Who bakes better?
cake_data %>%
ggplot(aes(x = Gender, y = Score, fill = Gender)) +
geom_boxplot() +
theme_minimal() +
theme_bw() +
scale_fill_manual(values = c("#F5E8E1", "#D0BBA8")) +
labs(x = "Gender", y = "Score") +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
## Column - Temperature
```{r}
#| title: How does outdoor temperature influence final score?
cake_data %>%
ggplot(aes(x = Temperature, y = Score)) +
geom_line( color="darkgrey") +
geom_point(shape=21, color="black", fill="#DBD9DA", size=6) +
theme_bw() +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
my-dashboard.qmd
---
title: "Immunotechnology Cake Club"
format:
dashboard:
orientation: columns
logo: ./cake-emoji.png
---
```{r}
library(dplyr)
library(ggplot2)
```
## Column - Gender
```{r}
#| title: Who bakes better?
cake_data %>%
ggplot(aes(x = Gender, y = Score, fill = Gender)) +
geom_boxplot() +
theme_minimal() +
theme_bw() +
scale_fill_manual(values = c("#F5E8E1", "#D0BBA8")) +
labs(x = "Gender", y = "Score") +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
## Column - Temperature
```{r}
#| title: How does outdoor temperature influence final score?
cake_data %>%
ggplot(aes(x = Temperature, y = Score)) +
geom_line( color="darkgrey") +
geom_point(shape=21, color="black", fill="#DBD9DA", size=6) +
theme_bw() +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
my-dashboard.qmd
---
title: "Immunotechnology Cake Club"
format:
dashboard:
logo: ./cake-emoji.png
---
```{r}
library(dplyr)
library(ggplot2)
```
## Row - Gender
```{r}
#| title: Who bakes better?
cake_data %>%
ggplot(aes(x = Gender, y = Score, fill = Gender)) +
geom_boxplot() +
theme_minimal() +
theme_bw() +
scale_fill_manual(values = c("#F5E8E1", "#D0BBA8")) +
labs(x = "Gender", y = "Score") +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
## Row - Temperature
```{r}
#| title: How does outdoor temperature influence final score?
cake_data %>%
ggplot(aes(x = Temperature, y = Score)) +
geom_line( color="darkgrey") +
geom_point(shape=21, color="black", fill="#DBD9DA", size=6) +
theme_bw() +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
### Tabsets of plots {.tabset}
```{r}
#| title: Gender
cake_data %>%
ggplot(aes(x = Gender, y = Score, fill = Gender)) +
geom_boxplot() +
theme_minimal() +
theme_bw() +
scale_fill_manual(values = c("#F5E8E1", "#D0BBA8")) +
labs(x = "Gender", y = "Score") +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
```{r}
#| title: Temperature
cake_data %>%
ggplot(aes(x = Temperature, y = Score)) +
geom_line( color="darkgrey") +
geom_point(shape=21, color="black", fill="#DBD9DA", size=6) +
theme_bw() +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
my-dashboard.qmd
---
title: "Immunotechnology Cake Club"
format:
dashboard:
logo: ./cake-emoji.png
---
```{r}
library(dplyr)
library(ggplot2)
```
## Row - Gender
```{r}
#| title: Who bakes better?
cake_data %>%
ggplot(aes(x = Gender, y = Score, fill = Gender)) +
geom_boxplot() +
theme_minimal() +
theme_bw() +
scale_fill_manual(values = c("#F5E8E1", "#D0BBA8")) +
labs(x = "Gender", y = "Score") +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
## Row - Temperature
```{r}
#| title: How does outdoor temperature influence final score?
cake_data %>%
ggplot(aes(x = Temperature, y = Score)) +
geom_line( color="darkgrey") +
geom_point(shape=21, color="black", fill="#DBD9DA", size=6) +
theme_bw() +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
### Tabsets of plots {.tabset}
```{r}
#| title: Gender
cake_data %>%
ggplot(aes(x = Gender, y = Score, fill = Gender)) +
geom_boxplot() +
theme_minimal() +
theme_bw() +
scale_fill_manual(values = c("#F5E8E1", "#D0BBA8")) +
labs(x = "Gender", y = "Score") +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
```{r}
#| title: Temperature
cake_data %>%
ggplot(aes(x = Temperature, y = Score)) +
geom_line( color="darkgrey") +
geom_point(shape=21, color="black", fill="#DBD9DA", size=6) +
theme_bw() +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
my-dashboard.qmd
---
title: "Immunotechnology Cake Club"
format:
dashboard:
logo: ./cake-emoji.png
---
```{r}
library(dplyr)
library(ggplot2)
```
# Page 1
## Row - Gender
```{r}
#| title: Who bakes better?
cake_data %>%
ggplot(aes(x = Gender, y = Score, fill = Gender)) +
geom_boxplot() +
theme_minimal() +
theme_bw() +
scale_fill_manual(values = c("#F5E8E1", "#D0BBA8")) +
labs(x = "Gender", y = "Score") +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
# Page 2
## Row - Temperature
```{r}
#| title: How does outdoor temperature influence final score?
cake_data %>%
ggplot(aes(x = Temperature, y = Score)) +
geom_line( color="darkgrey") +
geom_point(shape=21, color="black", fill="#DBD9DA", size=6) +
theme_bw() +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
my-dashboard.qmd
---
title: "Immunotechnology Cake Club"
format:
dashboard:
logo: ./cake-emoji.png
---
```{r}
library(dplyr)
library(ggplot2)
```
# Page 1
## Row - Gender
```{r}
#| title: Who bakes better?
cake_data %>%
ggplot(aes(x = Gender, y = Score, fill = Gender)) +
geom_boxplot() +
theme_minimal() +
theme_bw() +
scale_fill_manual(values = c("#F5E8E1", "#D0BBA8")) +
labs(x = "Gender", y = "Score") +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
# Page 2
## Row - Temperature
```{r}
#| title: How does outdoor temperature influence final score?
cake_data %>%
ggplot(aes(x = Temperature, y = Score)) +
geom_line( color="darkgrey") +
geom_point(shape=21, color="black", fill="#DBD9DA", size=6) +
theme_bw() +
theme(axis.text = element_text(size = 20),
axis.title = element_text(size = 20),
legend.text = element_text(size = 20),
legend.title = element_text(size = 20))
```
Dashboards are typically just static HTML pages so they can be deployed to any web server or web host.
Deployment options:
.qmd
and rendered files to a GitHub repository and enable GitHub Pages.