This project show visualization of students adaptivity levelin online education with focus on beautiful palettes from the MetBrewer R package

# Import the libraries
library(tidyverse) # For data transformation and manipulation
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(ggplot2) # For data visualisation
library(tidyverse)
library(showtext)
## Loading required package: sysfonts
## Loading required package: showtextdb
library(ggtext)
library(waffle) # For data visualisation
library(MetBrewer)
library(patchwork)

**Loading data into R Environment

# Load the data
path = "C:/Users/Hp/Desktop/IBK - TEMP/Students Adaptivity Level in Online Education.csv"

adapt <- read_csv(path) 
## Rows: 1205 Columns: 14
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (14): Gender, Age, Education_Level, Institution_Type, IT_Student, Locati...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#df <- file.choose()
###### Exploratory Data Analysis

# Check the first few rows of the data
head(adapt)
## # A tibble: 6 × 14
##   Gender Age    Education_Level Institution_Type IT_Student Location
##   <chr>  <chr>  <chr>           <chr>            <chr>      <chr>   
## 1 Boy    21-25  University      Non Government   No         Yes     
## 2 Girl   21-25  University      Non Government   No         Yes     
## 3 Girl   16-20  College         Government       No         Yes     
## 4 Girl   15-Nov School          Non Government   No         Yes     
## 5 Girl   16-20  School          Non Government   No         Yes     
## 6 Boy    15-Nov School          Non Government   No         Yes     
## # ℹ 8 more variables: Load_shedding <chr>, Financial_Condition <chr>,
## #   Internet_Type <chr>, Network_Type <chr>, Class_Duration <chr>,
## #   Self_Lms <chr>, Device <chr>, Adaptivity_Level <chr>
# Check the no. of rows and columns of the data
dim(adapt)
## [1] 1205   14
# Check information of the data
glimpse(adapt)
## Rows: 1,205
## Columns: 14
## $ Gender              <chr> "Boy", "Girl", "Girl", "Girl", "Girl", "Boy", "Boy…
## $ Age                 <chr> "21-25", "21-25", "16-20", "15-Nov", "16-20", "15-…
## $ Education_Level     <chr> "University", "University", "College", "School", "…
## $ Institution_Type    <chr> "Non Government", "Non Government", "Government", …
## $ IT_Student          <chr> "No", "No", "No", "No", "No", "No", "No", "No", "N…
## $ Location            <chr> "Yes", "Yes", "Yes", "Yes", "Yes", "Yes", "Yes", "…
## $ Load_shedding       <chr> "Low", "High", "Low", "Low", "Low", "Low", "Low", …
## $ Financial_Condition <chr> "Mid", "Mid", "Mid", "Mid", "Poor", "Poor", "Mid",…
## $ Internet_Type       <chr> "Wifi", "Mobile Data", "Wifi", "Mobile Data", "Mob…
## $ Network_Type        <chr> "4G", "4G", "4G", "4G", "3G", "3G", "4G", "4G", "4…
## $ Class_Duration      <chr> "6-Mar", "3-Jan", "3-Jan", "3-Jan", "0", "3-Jan", …
## $ Self_Lms            <chr> "No", "Yes", "No", "No", "No", "No", "No", "No", "…
## $ Device              <chr> "Tab", "Mobile", "Mobile", "Mobile", "Mobile", "Mo…
## $ Adaptivity_Level    <chr> "Moderate", "Moderate", "Moderate", "Moderate", "L…

Data Preparation

df1 <- adapt|> 
  select(c(Network_Type,Financial_Condition))|> group_by(Network_Type,Financial_Condition)|>
  count(Network_Type,Financial_Condition)


df1
## # A tibble: 8 × 3
## # Groups:   Network_Type, Financial_Condition [8]
##   Network_Type Financial_Condition     n
##   <chr>        <chr>               <int>
## 1 2G           Mid                    11
## 2 2G           Poor                    8
## 3 3G           Mid                   280
## 4 3G           Poor                  117
## 5 3G           Rich                   14
## 6 4G           Mid                   587
## 7 4G           Poor                  117
## 8 4G           Rich                   71
df2 <- adapt|> 
  select(c(Device,Adaptivity_Level))|> group_by(Device,Adaptivity_Level)|>
  count(Device,Adaptivity_Level)
df2
## # A tibble: 9 × 3
## # Groups:   Device, Adaptivity_Level [9]
##   Device   Adaptivity_Level     n
##   <chr>    <chr>            <int>
## 1 Computer High                30
## 2 Computer Low                 40
## 3 Computer Moderate            92
## 4 Mobile   High                68
## 5 Mobile   Low                438
## 6 Mobile   Moderate           507
## 7 Tab      High                 2
## 8 Tab      Low                  2
## 9 Tab      Moderate            26
df3 <- adapt|> 
  select(c(Education_Level,Institution_Type))|> group_by(Education_Level,Institution_Type)|>
  count(Education_Level,Institution_Type)
df3
## # A tibble: 6 × 3
## # Groups:   Education_Level, Institution_Type [6]
##   Education_Level Institution_Type     n
##   <chr>           <chr>            <int>
## 1 College         Government         127
## 2 College         Non Government      92
## 3 School          Government         100
## 4 School          Non Government     430
## 5 University      Government         155
## 6 University      Non Government     301
df4 <- adapt|> 
  select(c(Gender,IT_Student))|> group_by(Gender,IT_Student)|>
  count(Gender,IT_Student)
df4
## # A tibble: 4 × 3
## # Groups:   Gender, IT_Student [4]
##   Gender IT_Student     n
##   <chr>  <chr>      <int>
## 1 Boy    No           435
## 2 Boy    Yes          228
## 3 Girl   No           466
## 4 Girl   Yes           76

Text Preparation

font_add_google("Outfit", "title_font")
font_add_google("Cabin", "body_font")
showtext_auto()

title_font <- "title_font"
body_font <- "body_font"

Data Visualization

viz1 = ggplot(df1, aes(fill = Network_Type , values = n)) +
   geom_waffle(color = "white", size = 0.25,n_rows = 10, flip = TRUE) +
  facet_wrap(~Financial_Condition, nrow = 1, strip.position = "bottom") +
  scale_x_discrete() + 
  scale_y_continuous(labels = function(x) x * 10, # make this multiply the same as n_rows
                     expand = c(0,0))+
  scale_fill_met_d("VanGogh2", direction=1)+
  labs(title = "VanGogh2", x = "Financial Condition",
       
       subtitle =  " ",
       caption = "")+
  theme_minimal()+
  theme(
        axis.text.x = element_text(family = body_font, size=12),
    axis.text.y = element_text(family = body_font, size=12),
  # Legend
  legend.position = "right",
  legend.title = element_text(" "),
  legend.spacing = unit(0.5, 'cm'),
  legend.key.height= unit(0.5, 'cm'),
  legend.key.width= unit(0.7, 'cm'),
  legend.text = element_text(family = body_font,
                             size=13,
                             face = 'plain',
                             color = "grey10"),
  
  # TITLE
  plot.title.position = "plot",
  plot.title = element_textbox(margin = margin(20, 0, 10, 0),
                               size = 15,
                               family = title_font,
                               face = "bold",
                               width = unit(55, "lines")),
  
  # SUB-TITLE
  plot.subtitle = element_text(margin = margin(10, 0, 20, 0),
                            size = 16,
                            family = body_font,
                            color = "grey15"),
  # Caption
  plot.caption.position = "plot", 
  plot.caption = element_text(family=body_font,
                              face="bold",
                              size=16, 
                              color="grey40",
                              hjust=.5, 
                              margin=margin(20,0,0,0)),
  
  plot.background = element_rect(color="white", fill="white"),
  plot.margin = margin(20, 40, 20, 40)
)

showtext_opts(dpi = 320)

ggsave(
  "C:/Users/Hp/Desktop/IBK - TEMP/viz1.png", 
)
## Saving 7 x 5 in image
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family '
## ' not found, will use 'sans' instead
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family '
## ' not found, will use 'sans' instead
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family '
## ' not found, will use 'sans' instead
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family '
## ' not found, will use 'sans' instead
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family '
## ' not found, will use 'sans' instead
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family '
## ' not found, will use 'sans' instead
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family '
## ' not found, will use 'sans' instead
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family '
## ' not found, will use 'sans' instead
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family '
## ' not found, will use 'sans' instead
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family '
## ' not found, will use 'sans' instead
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family '
## ' not found, will use 'sans' instead
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family '
## ' not found, will use 'sans' instead
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family '
## ' not found, will use 'sans' instead
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family '
## ' not found, will use 'sans' instead
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family ' ' not found, will use 'sans' instead
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family ' ' not found, will use 'sans' instead
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family ' ' not found, will use 'sans' instead
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family ' ' not found, will use 'sans' instead
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family ' ' not found, will use 'sans' instead
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family ' ' not found, will use 'sans' instead
showtext_auto(FALSE)
 
viz1
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family
## not found in Windows font database
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family
## not found in Windows font database
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family
## not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family
## not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database

viz2 <- ggplot(df2, aes(fill = Device, values = n)) +
   geom_waffle(color = "white", size = 0.25, n_rows = 10, flip = TRUE) +
  facet_wrap(~Adaptivity_Level, nrow = 1, strip.position = "bottom") +
  scale_x_discrete() + 
  scale_y_continuous(labels = function(x) x * 10, # make this multiply the same as n_rows
                     expand = c(0,0))+
  scale_fill_met_d("Homer1", direction=1)+
  labs(title = "Homer1", x = "Adaptivity_Level",
       
       subtitle =  " ",
       caption = " ")+
  theme_minimal()+
  theme(
        axis.text.x = element_text(family = body_font, size=12),
    axis.text.y = element_text(family = body_font, size=12),
  # Legend
  legend.position = "right",
  legend.title = element_text(" "),
  legend.spacing = unit(0.5, 'cm'),
  legend.key.height= unit(0.5, 'cm'),
  legend.key.width= unit(0.7, 'cm'),
  legend.text = element_text(family = body_font,
                             size=13,
                             face = 'plain',
                             color = "grey10"),
  
  # TITLE
  plot.title.position = "plot",
  plot.title = element_textbox(margin = margin(20, 0, 10, 0),
                               size = 15,
                               family = title_font,
                               face = "bold",
                               width = unit(55, "lines")),
  
  # SUB-TITLE
  plot.subtitle = element_text(margin = margin(10, 0, 20, 0),
                            size = 16,
                            family = body_font,
                            color = "grey15"),
  # Caption
  plot.caption.position = "plot", 
  plot.caption = element_text(family=body_font,
                              face="bold",
                              size=16, 
                              color="grey40",
                              hjust=.5, 
                              margin=margin(20,0,0,0)),
  
  plot.background = element_rect(color="white", fill="white"),
  plot.margin = margin(20, 40, 20, 40)
)

showtext_opts(dpi = 320)

ggsave(
  "C:/Users/Hp/Desktop/IBK - TEMP/viz2.png", 
  dpi=320, width = 12, height = 9
)
showtext_auto(FALSE)
 
viz2
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database

viz3 <- ggplot(df3, aes(fill = Institution_Type, values = n)) +
   geom_waffle(color = "white", size = 0.25, n_rows = 10, flip = TRUE) +
  facet_wrap(~Education_Level, nrow = 1, strip.position = "bottom") +
  scale_x_discrete() + 
  scale_y_continuous(labels = function(x) x * 10, # make this multiply the same as n_rows
                     expand = c(0,0))+
  scale_fill_met_d("Hiroshige", direction=1)+
  labs(title = "Hiroshige", x = "Education Level",
       
       subtitle =  "",caption = "")+
  theme_minimal()+
  theme(
        axis.text.x = element_text(family = body_font, size=12),
    axis.text.y = element_text(family = body_font, size=12),
  # Legend
  legend.position = "right",
  legend.title = element_text(" "),
  legend.spacing = unit(0.5, 'cm'),
  legend.key.height= unit(0.5, 'cm'),
  legend.key.width= unit(0.7, 'cm'),
  legend.text = element_text(family = body_font,
                             size=13,
                             face = 'plain',
                             color = "grey10"),
  
  # TITLE
  plot.title.position = "plot",
  plot.title = element_textbox(margin = margin(20, 0, 10, 0),
                               size = 15,
                               family = title_font,
                               face = "bold",
                               width = unit(55, "lines")),
  
  # SUB-TITLE
  plot.subtitle = element_text(margin = margin(10, 0, 20, 0),
                            size = 16,
                            family = body_font,
                            color = "grey15"),
  # Caption
  plot.caption.position = "plot", 
  plot.caption = element_text(family=body_font,
                              face="bold",
                              size=16, 
                              color="grey40",
                              hjust=.5, 
                              margin=margin(20,0,0,0)),
  
  plot.background = element_rect(color="white", fill="white"),
  plot.margin = margin(20, 40, 20, 40)
)

showtext_opts(dpi = 320)

ggsave(
  "C:/Users/Hp/Desktop/IBK - TEMP/viz3.png", 
  dpi=320, width = 12, height = 9
)
showtext_auto(FALSE)
 
viz3
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database

viz4 <- ggplot(df4, aes(fill = Gender, values = n)) +
   geom_waffle(color = "white", size = 0.25, n_rows = 10, flip = TRUE) +
  facet_wrap(~IT_Student, nrow = 1, strip.position = "bottom") +
  scale_x_discrete() + 
  scale_y_continuous(labels = function(x) x * 10, # make this multiply the same as n_rows
                     expand = c(0,0))+
  scale_fill_met_d("Java", direction=1)+
  labs(title = "Java", x = "IT Student",
       
       subtitle =  " ",
       caption = "Graphic: Ibikunle Gabriel|Data Source: Don't doubt my data")+
  theme_minimal()+
  theme(
        axis.text.x = element_text(family = body_font, size=12),
    axis.text.y = element_text(family = body_font, size=12),
  # Legend
  legend.position = "right",
  legend.title = element_text(""),
  legend.spacing = unit(0.5, 'cm'),
  legend.key.height= unit(0.5, 'cm'),
  legend.key.width= unit(0.7, 'cm'),
  legend.text = element_text(family = body_font,
                             size=13,
                             face = 'plain',
                             color = "grey10"),
  
  # TITLE
  plot.title.position = "plot",
  plot.title = element_textbox(margin = margin(20, 0, 10, 0),
                               size = 15,
                               family = title_font,
                               face = "bold",
                               width = unit(55, "lines")),
  
  # SUB-TITLE
  plot.subtitle = element_text(margin = margin(10, 0, 20, 0),
                            size = 16,
                            family = body_font,
                            color = "grey15"),
  # Caption
  plot.caption.position = "plot", 
  plot.caption = element_text(family=body_font,
                              face="bold",
                              size=12, 
                              color="grey40",
                              hjust=.5, 
                              margin=margin(20,0,0,0)),
  
  plot.background = element_rect(color="white", fill="white"),
  plot.margin = margin(20, 40, 20, 40)
)

showtext_opts(dpi = 320)

ggsave(
  "C:/Users/Hp/Desktop/IBK - TEMP/viz4.png", 
  dpi=320, width = 12, height = 9
)
showtext_auto(FALSE)
 
viz4
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database

combined <-
(viz1|viz2)/(viz3|viz4)

ggsave(
  "C:/Users/Hp/Desktop/IBK - TEMP/combined.png", 
  dpi=320, width = 12, height = 9
)

combined
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database