Q3. STREAMGRAPH - Basic streamgraph #1

devtools::install_github("hrbrmstr/streamgraph")
## Skipping install of 'streamgraph' from a github remote, the SHA1 (76f7173e) has not changed since last install.
##   Use `force = TRUE` to force installation
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(streamgraph)
## Registered S3 method overwritten by 'xts':
##   method     from
##   as.zoo.xts zoo
# Create data:
year=rep(seq(1990,2016) , each=10)
name=rep(letters[1:10] , 27)
value=sample( seq(0,1,0.0001) , length(year))
data=data.frame(year, name, value)
# Basic stream graph: just give the 3 arguments
streamgraph(data, key="name", value="value", date="year")

Q3. STREAMGRAPH - Basic streamgraph #2

library(dplyr)
library(streamgraph)
library(viridis)
## Loading required package: viridisLite
setwd("~/Documents/0 - Montgomery College/0 - DATA 110/Datasets")

stocks <- read.csv("stocks.csv")
# stocks_url <- http://infographics.economist.com/2015/tech_stocks/data/stocks.csv
# stocks <- read.csv(stocks_url, stringsAsFactors=FALSE)
stock_colors <- viridis_pal()(100)
# Percent of total
stocks %>% 
    mutate(date=as.Date(quarter, format="%m/%d/%y")) %>% 
    streamgraph(key="ticker", value="nominal", offset="expand") %>% 
    sg_fill_manual(stock_colors) %>% 
    sg_axis_x(tick_interval=10, tick_units="year") %>% 
    sg_legend(TRUE, "Ticker: ")

Q3. STREAMGRAPH - Babynames Version A - ORIGINAL

# devtools::install_github("hrbrmstr/streamgraph")
# devtools::session_info()
library(dplyr)
library(babynames)
library(streamgraph)
ncol(babynames)
## [1] 5
head(babynames)
## # A tibble: 6 x 5
##    year sex   name          n   prop
##   <dbl> <chr> <chr>     <int>  <dbl>
## 1  1880 F     Mary       7065 0.0724
## 2  1880 F     Anna       2604 0.0267
## 3  1880 F     Emma       2003 0.0205
## 4  1880 F     Elizabeth  1939 0.0199
## 5  1880 F     Minnie     1746 0.0179
## 6  1880 F     Margaret   1578 0.0162
str(babynames)
## Classes 'tbl_df', 'tbl' and 'data.frame':    1924665 obs. of  5 variables:
##  $ year: num  1880 1880 1880 1880 1880 1880 1880 1880 1880 1880 ...
##  $ sex : chr  "F" "F" "F" "F" ...
##  $ name: chr  "Mary" "Anna" "Emma" "Elizabeth" ...
##  $ n   : int  7065 2604 2003 1939 1746 1578 1472 1414 1320 1288 ...
##  $ prop: num  0.0724 0.0267 0.0205 0.0199 0.0179 ...
babynames %>%
   filter(grepl("^Kr", name)) %>%
   group_by(year, name) %>%
   tally(wt=n) %>%
   streamgraph("name", "n", "year")

Q3. STREAMGRAPH - Babynames Version A - TWEAKED

set offset to expand - this chart now shows proportions instead of counts

specified axis dimensions (500px x 600x) to stretch it out vertically

changed x-axis increment to 20 years (instead of 10)

changed color scheme to Tableau bluered12

data subset is “R” names

# devtools::install_github("hrbrmstr/streamgraph")
# devtools::session_info()
library(dplyr)
library(babynames)
library(streamgraph)
ncol(babynames)
## [1] 5
head(babynames)
## # A tibble: 6 x 5
##    year sex   name          n   prop
##   <dbl> <chr> <chr>     <int>  <dbl>
## 1  1880 F     Mary       7065 0.0724
## 2  1880 F     Anna       2604 0.0267
## 3  1880 F     Emma       2003 0.0205
## 4  1880 F     Elizabeth  1939 0.0199
## 5  1880 F     Minnie     1746 0.0179
## 6  1880 F     Margaret   1578 0.0162
str(babynames)
## Classes 'tbl_df', 'tbl' and 'data.frame':    1924665 obs. of  5 variables:
##  $ year: num  1880 1880 1880 1880 1880 1880 1880 1880 1880 1880 ...
##  $ sex : chr  "F" "F" "F" "F" ...
##  $ name: chr  "Mary" "Anna" "Emma" "Elizabeth" ...
##  $ n   : int  7065 2604 2003 1939 1746 1578 1472 1414 1320 1288 ...
##  $ prop: num  0.0724 0.0267 0.0205 0.0199 0.0179 ...
babynames %>%
   filter(grepl("R", name)) %>%
   group_by(year, name) %>%
   tally(wt=n) %>%
   streamgraph("name", "n", "year",offset = "expand","1000px","600px") %>%
   sg_axis_x(20) %>%
   sg_fill_tableau("bluered12") %>%
   sg_legend(show=TRUE, label="R- names: ")