Install tidyverse and ggplot2

library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.3     v purrr   0.3.4
## v tibble  3.1.2     v dplyr   1.0.6
## v tidyr   1.1.3     v stringr 1.4.0
## v readr   1.4.0     v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(ggplot2)
library (fansi)

Load DsLabs data and packages

# install.packages("dslabs")  # these are data science labs
library("dslabs")
data(package="dslabs")
list.files(system.file("script", package = "dslabs"))
##  [1] "make-admissions.R"                   
##  [2] "make-brca.R"                         
##  [3] "make-brexit_polls.R"                 
##  [4] "make-death_prob.R"                   
##  [5] "make-divorce_margarine.R"            
##  [6] "make-gapminder-rdas.R"               
##  [7] "make-greenhouse_gases.R"             
##  [8] "make-historic_co2.R"                 
##  [9] "make-mnist_27.R"                     
## [10] "make-movielens.R"                    
## [11] "make-murders-rda.R"                  
## [12] "make-na_example-rda.R"               
## [13] "make-nyc_regents_scores.R"           
## [14] "make-olive.R"                        
## [15] "make-outlier_example.R"              
## [16] "make-polls_2008.R"                   
## [17] "make-polls_us_election_2016.R"       
## [18] "make-reported_heights-rda.R"         
## [19] "make-research_funding_rates.R"       
## [20] "make-stars.R"                        
## [21] "make-temp_carbon.R"                  
## [22] "make-tissue-gene-expression.R"       
## [23] "make-trump_tweets.R"                 
## [24] "make-weekly_us_contagious_diseases.R"
## [25] "save-gapminder-example-csv.R"

Explore datasets before selecting one to use

Stars

data("stars")
library(tidyverse)
library(ggthemes)
library(ggrepel)
str(stars)
## 'data.frame':    96 obs. of  4 variables:
##  $ star     : Factor w/ 95 levels "*40EridaniA",..: 87 85 48 38 33 92 49 79 77 47 ...
##  $ magnitude: num  4.8 1.4 -3.1 -0.4 4.3 0.5 -0.6 -7.2 2.6 -5.7 ...
##  $ temp     : int  5840 9620 7400 4590 5840 9900 5150 12140 6580 3200 ...
##  $ type     : chr  "G" "A" "F" "K" ...

brca

data("brca")
library(tidyverse)
library(ggthemes)
library(ggrepel)
str(brca)
## List of 2
##  $ x: num [1:569, 1:30] 13.5 13.1 9.5 13 8.2 ...
##   ..- attr(*, "dimnames")=List of 2
##   .. ..$ : NULL
##   .. ..$ : chr [1:30] "radius_mean" "texture_mean" "perimeter_mean" "area_mean" ...
##  $ y: Factor w/ 2 levels "B","M": 1 1 1 1 1 1 1 1 1 1 ...

admissions

data("admissions")
library(tidyverse)
library(ggthemes)
library(ggrepel)
str(admissions)
## 'data.frame':    12 obs. of  4 variables:
##  $ major     : chr  "A" "B" "C" "D" ...
##  $ gender    : chr  "men" "men" "men" "men" ...
##  $ admitted  : num  62 63 37 33 28 6 82 68 34 35 ...
##  $ applicants: num  825 560 325 417 191 373 108 25 593 375 ...

I selcted “admisisons” because it has at least two categorical and two numeric variables

Install and load required packages

library(dbplyr)
## 
## Attaching package: 'dbplyr'
## The following objects are masked from 'package:dplyr':
## 
##     ident, sql
library(highcharter)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
## 
## Attaching package: 'highcharter'
## The following object is masked _by_ '.GlobalEnv':
## 
##     stars
## The following object is masked from 'package:dslabs':
## 
##     stars
library(RColorBrewer)

First, prepare the data

# prepare data
majors<- admissions %>%
  group_by(major, gender)%>%
   arrange(major, gender)
view (majors)

Plot major against admitted with group = gender

# basic symbol-and-line chart, default settings
highchart() %>%
  hc_add_series(data = majors,
                   type = "line", hcaes(x = major,
                   y = admitted, 
                   group = gender)) 

#Use a ColorBrewer palette

Use 4 colors from “set1”

# define color palette
cols <- brewer.pal(4, "Set1")

highchart() %>%
  hc_add_series(data = majors,
                   type = "line", hcaes(x = major,
                   y = admitted, 
                   group = gender))  %>%

  hc_colors(cols)

Add axis labels

highchart() %>%
  hc_add_series(data = majors,
                   type = "line", hcaes(x = major,
                   y = admitted, 
                   group = gender))  %>%
  hc_colors(cols)%>%
  
  hc_xAxis(title = list(text="major")) %>%
  hc_yAxis(title = list(text="admissions"))

Add title

highchart() %>%
  hc_add_series(data = majors,
                   type = "line", hcaes(x = major,
                   y = admitted, 
                   group = gender))  %>%
  hc_colors(cols)%>%
  
  hc_xAxis(title = list(text="major")) %>%
  hc_yAxis(title = list(text="admissions")) %>%
hc_title(
    text = "College Admisisons by Gender and Major",
    margin = 20,
    align = "left",
    style = list(color = "#22A884", useHTML = TRUE)
    )