├── .Rprofile
├── .gitattributes
├── .gitignore
├── LICENSE
├── README.md
├── _workflowr.yml
├── analysis
├── _site.yml
├── about.Rmd
├── baseplots.Rmd
├── index.Rmd
├── license.Rmd
└── tweets.Rmd
├── basegraphics.Rproj
├── code
├── 01-animate_covid-biorxiv.R
├── 01-barplot_BechdelTest.R
├── 02-splitbarplot_PopGermany.R
├── 03-dotplot_OldestCountry.R
├── 04-arrowplot_WomenInParliment.R
├── 05-linechart_COVIDrXiv.R
├── 05-linechart_CigConsumption.R
├── 06-scatterplot_RichGDP.R
├── 07-areachart_USmigration.R
├── 08-donutplot_TopWealth.R
├── 09-plot_CalFire.R
├── 10-donut_BloodGroup.R
├── 11-bubblechart_Furturejobs2030.R
├── 14-barplot_BerlinMarathon2022.R
├── 15-pieanimate_browserWars.R
├── 15-pieanimate_browserWars_compileData.R
├── 16-global_brands.R
├── 17-time-spent-with-relationships-by-age-us.R
├── 18-cleanEnergy_manufacturer.R
├── 19-barcodechart_USagegroup.R
└── README.md
├── data
├── 01-barplot_BechdelTest.csv
├── 02-splitbarplot_PopGermany.csv
├── 03-dotplot_OldestCountry.csv
├── 04-arrowplot_WomenInParliment.csv
├── 05-linechart_COVIDrXiv.csv
├── 05-linechart_COVIDrxiv.tsv
├── 05-linechart_CigConsumption.csv
├── 06-scatterplot_RichGDP.csv
├── 06-scatterplot_data2.csv
├── 07-areachart_USmigration.csv
├── 08-donutplot_TopWealth.csv
├── 09-calfire_frap.csv
├── 10-donut_BloodGroup.tsv
├── 10-donut_BloodGroupCountry.tsv
├── 11-bubblechart_furturejobs2030.tsv
├── 14-barplot_BerlinMarathon2022.tsv
├── 15-GenzUnemnployment.tsv
├── 16-global_brands.csv
├── 17-time-spent-with-relationships-by-age-us.csv
├── 18-cleanEnergy_manufacturer.tsv
├── 19-barcodechart_USagegroup.csv
├── 21-top_gold_mining_stocks.tsv
├── 22-median_2022_student_debt.tsv
├── 23-marvel_boxoffocie.tsv
├── 24-data_cost.tsv
├── README.md
├── data.csv
└── rangeplot_data.csv
├── docs
├── .nojekyll
├── about.html
├── baseplots.html
├── dark.css
├── figure
│ └── baseplots.Rmd
│ │ ├── Bechdel_test-1.png
│ │ ├── DE_parliment-1.png
│ │ ├── US_age_group-1.png
│ │ ├── US_migration-1.png
│ │ ├── berlin_marathon-1.png
│ │ ├── blood_groups-1.png
│ │ ├── cal_fires-1.png
│ │ ├── cig_consumption-1.png
│ │ ├── covi_rxiv-1.png
│ │ ├── g7vsbrics-1.png
│ │ ├── goldstocks-1.png
│ │ ├── jobs-1.png
│ │ ├── measles-1.png
│ │ ├── oldest_country-1.png
│ │ ├── pop_pyramid-1.png
│ │ ├── rich_health-1.png
│ │ ├── stdentdebt-1.png
│ │ ├── timespent-1.png
│ │ ├── top_wealth-1.png
│ │ ├── unnamed-chunk-1-1.png
│ │ ├── unnamed-chunk-2-1.png
│ │ ├── unnamed-chunk-3-1.png
│ │ └── women_parl-1.png
├── flatly.css
├── index.html
├── license.html
├── mint.css
├── site_libs
│ ├── bootstrap-3.3.5
│ │ ├── css
│ │ │ ├── bootstrap-theme.css
│ │ │ ├── bootstrap-theme.css.map
│ │ │ ├── bootstrap-theme.min.css
│ │ │ ├── bootstrap.css
│ │ │ ├── bootstrap.css.map
│ │ │ ├── bootstrap.min.css
│ │ │ ├── cerulean.min.css
│ │ │ ├── cosmo.min.css
│ │ │ ├── darkly.min.css
│ │ │ ├── flatly.min.css
│ │ │ ├── fonts
│ │ │ │ ├── Lato.ttf
│ │ │ │ ├── LatoBold.ttf
│ │ │ │ ├── LatoItalic.ttf
│ │ │ │ ├── NewsCycle.ttf
│ │ │ │ ├── NewsCycleBold.ttf
│ │ │ │ ├── OpenSans.ttf
│ │ │ │ ├── OpenSansBold.ttf
│ │ │ │ ├── OpenSansBoldItalic.ttf
│ │ │ │ ├── OpenSansItalic.ttf
│ │ │ │ ├── OpenSansLight.ttf
│ │ │ │ ├── OpenSansLightItalic.ttf
│ │ │ │ ├── Raleway.ttf
│ │ │ │ ├── RalewayBold.ttf
│ │ │ │ ├── Roboto.ttf
│ │ │ │ ├── RobotoBold.ttf
│ │ │ │ ├── RobotoLight.ttf
│ │ │ │ ├── RobotoMedium.ttf
│ │ │ │ ├── SourceSansPro.ttf
│ │ │ │ ├── SourceSansProBold.ttf
│ │ │ │ ├── SourceSansProItalic.ttf
│ │ │ │ ├── SourceSansProLight.ttf
│ │ │ │ └── Ubuntu.ttf
│ │ │ ├── journal.min.css
│ │ │ ├── lumen.min.css
│ │ │ ├── paper.min.css
│ │ │ ├── readable.min.css
│ │ │ ├── sandstone.min.css
│ │ │ ├── simplex.min.css
│ │ │ ├── spacelab.min.css
│ │ │ ├── united.min.css
│ │ │ └── yeti.min.css
│ │ ├── fonts
│ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ ├── glyphicons-halflings-regular.svg
│ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ ├── glyphicons-halflings-regular.woff
│ │ │ └── glyphicons-halflings-regular.woff2
│ │ ├── js
│ │ │ ├── bootstrap.js
│ │ │ ├── bootstrap.min.js
│ │ │ └── npm.js
│ │ └── shim
│ │ │ ├── html5shiv.min.js
│ │ │ └── respond.min.js
│ ├── header-attrs-2.14
│ │ └── header-attrs.js
│ ├── header-attrs-2.15
│ │ └── header-attrs.js
│ ├── header-attrs-2.17
│ │ └── header-attrs.js
│ ├── header-attrs-2.20
│ │ └── header-attrs.js
│ ├── header-attrs-2.21
│ │ └── header-attrs.js
│ ├── highlightjs-9.12.0
│ │ ├── default.css
│ │ ├── highlight.js
│ │ └── textmate.css
│ ├── jquery-3.6.0
│ │ ├── jquery-3.6.0.js
│ │ ├── jquery-3.6.0.min.js
│ │ └── jquery-3.6.0.min.map
│ ├── jqueryui-1.11.4
│ │ ├── README
│ │ ├── images
│ │ │ ├── ui-icons_444444_256x240.png
│ │ │ ├── ui-icons_555555_256x240.png
│ │ │ ├── ui-icons_777620_256x240.png
│ │ │ ├── ui-icons_777777_256x240.png
│ │ │ ├── ui-icons_cc0000_256x240.png
│ │ │ └── ui-icons_ffffff_256x240.png
│ │ ├── index.html
│ │ ├── jquery-ui.css
│ │ ├── jquery-ui.js
│ │ ├── jquery-ui.min.css
│ │ ├── jquery-ui.min.js
│ │ ├── jquery-ui.structure.css
│ │ ├── jquery-ui.structure.min.css
│ │ ├── jquery-ui.theme.css
│ │ └── jquery-ui.theme.min.css
│ ├── navigation-1.1
│ │ ├── codefolding-lua.css
│ │ ├── codefolding.js
│ │ ├── sourceembed.js
│ │ └── tabsets.js
│ └── tocify-1.9.1
│ │ ├── jquery.tocify.css
│ │ └── jquery.tocify.js
└── tweets.html
├── main.nf
└── plots.png
/.Rprofile:
--------------------------------------------------------------------------------
1 | ## This makes sure that R loads the workflowr package
2 | ## automatically, everytime the project is loaded
3 | if (requireNamespace("workflowr", quietly = TRUE)) {
4 | message("Loading .Rprofile for the current workflowr project")
5 | library("workflowr")
6 | } else {
7 | message("workflowr package not installed, please run install.packages(\"workflowr\") to use the workflowr functions")
8 | }
9 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Classify R Markdown files as R code for GitHub language statistics
2 | # https://github.com/github/linguist#overrides
3 | *.[Rr]md linguist-language=R
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .Rproj.user
2 | .Rhistory
3 | .RData
4 | .Ruserdata
5 | .Rapp.history
6 | .DS_Store
7 | analysis/figure
8 | analysis/*png
9 | analysis/*html
10 | analysis/*_cache
11 | analysis/site_libs
12 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 Anand Mayakonda
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## Introduction
2 |
3 | Do you like Data Visualization and `#Rstats`?
4 |
5 | Base graphics in R is a powerful, blazing fast, and offers extremely customization data visualization solutions. Unfortunately, in the world of `ggplot2`, base graphics is largely ignored due to lack proper documentations and howtos.
6 |
7 | This repository demonstrates the usage of base R graphics (along with code and datasets) to generate visually appealing plots, without any dependencies what so ever.
8 |
9 | This repository is for those who like to learn and customize base R plotting functions. `#BaseisBeautiful` :)
10 |
11 | ## Results
12 |
13 | * [Home page](https://poisonalien.github.io/basegraphics/index.html)
14 | * [Code and plots](https://poisonalien.github.io/basegraphics/baseplots.html)
15 |
16 | ## Data and code
17 |
18 | * Raw data is stored under [data](https://github.com/PoisonAlien/basegraphics/tree/main/data) directory
19 | * Individual code for each plot is stored under [code](https://github.com/PoisonAlien/basegraphics/tree/main/code) directory
20 |
21 | ## Twitter
22 |
23 | I also tweet plots [@baseRgraphics](https://twitter.com/baseRgraphics). Make sure to follow the account for updates :)
24 |
25 | ## Examples
26 |
27 |
28 |
--------------------------------------------------------------------------------
/_workflowr.yml:
--------------------------------------------------------------------------------
1 | # workflowr options
2 | # Version 1.7.0
3 |
4 | # The seed to use for random number generation. See ?set.seed for details.
5 | seed: 20220715
6 | # The working directory to build the R Markdown files. The path is relative to
7 | # _workflowr.yml. See ?rmarkdown::render for details.
8 | knit_root_dir: "."
9 |
--------------------------------------------------------------------------------
/analysis/_site.yml:
--------------------------------------------------------------------------------
1 | name: "basegraphics"
2 | output_dir: ../docs
3 | navbar:
4 | title: "basegraphics"
5 | left:
6 | - text: Home
7 | href: index.html
8 | - text: About
9 | href: about.html
10 | - text: License
11 | href: license.html
12 | output:
13 | workflowr::wflow_html:
14 | toc: yes
15 | toc_float: yes
16 | theme: cosmo
17 | highlight: textmate
18 |
--------------------------------------------------------------------------------
/analysis/about.Rmd:
--------------------------------------------------------------------------------
1 | ---
2 | title: "About"
3 | output:
4 | workflowr::wflow_html:
5 | toc: false
6 | editor_options:
7 | chunk_output_type: console
8 | ---
9 |
10 | Do you like `#Rstats` and `#Datavisualization`? This repository demonstrates base R to crate plots generated using base graphics with no dependencies.
11 |
12 | This is for those who like to learn and customize base R plotting functions. `#BaseisBeautiful` :)
13 |
14 | This repository is maintained by [Anand Mayakonda](https://poisonalien.github.io/)
15 |
--------------------------------------------------------------------------------
/analysis/index.Rmd:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Home"
3 | site: workflowr::wflow_site
4 | output:
5 | workflowr::wflow_html:
6 | toc: false
7 | editor_options:
8 | chunk_output_type: console
9 | ---
10 |
11 | ## Introduction
12 |
13 | Base graphics in `R` is extremely powerful, blazing fast, and offers extremely customization data visualization solutions. Unfortunately, in the world of `ggplot2`, base graphics is largely ignored due to lack proper documentations and howtos.
14 |
15 | This document demonstrates the usage of base `R` graphics to generate visually appealing plots, without any dependencies.
16 |
17 |
18 | I also tweet plots [@baseRgraphics](https://twitter.com/baseRgraphics). Make sure to follow the account for updates :)
19 |
20 | ## Results
21 |
22 | See the below documents:
23 |
24 | * [Plots and code](baseplots.html) to see the results
25 | * [Tweets](tweets.html)
26 |
27 | ## Data and code
28 |
29 | * Raw data is stored under [data](https://github.com/PoisonAlien/basegraphics/tree/main/data) directory
30 | * Individual code for each plot is stored under [src](https://github.com/PoisonAlien/basegraphics/tree/main/src)
31 |
32 |
33 |
--------------------------------------------------------------------------------
/analysis/license.Rmd:
--------------------------------------------------------------------------------
1 | ---
2 | title: "License"
3 | output:
4 | workflowr::wflow_html:
5 | toc: false
6 | editor_options:
7 | chunk_output_type: console
8 | ---
9 |
10 | MIT License
11 |
12 | Copyright (c) 2022 Anand Mayakonda
13 |
14 | Permission is hereby granted, free of charge, to any person obtaining a copy
15 | of this software and associated documentation files (the "Software"), to deal
16 | in the Software without restriction, including without limitation the rights
17 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
18 | copies of the Software, and to permit persons to whom the Software is
19 | furnished to do so, subject to the following conditions:
20 |
21 | The above copyright notice and this permission notice shall be included in all
22 | copies or substantial portions of the Software.
23 |
24 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
25 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
27 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
29 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30 | SOFTWARE.
31 |
--------------------------------------------------------------------------------
/analysis/tweets.Rmd:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Tweets"
3 | author: "Anand Mayakonda"
4 | output: workflowr::wflow_html
5 | editor_options:
6 | chunk_output_type: console
7 | ---
8 |
9 | ## Tweets
10 |
11 | I tweet the plots and base R tips and gotchas [@baseRgraphics](https://twitter.com/baseRgraphics). Follow me there for updates.
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/basegraphics.Rproj:
--------------------------------------------------------------------------------
1 | Version: 1.0
2 |
3 | RestoreWorkspace: No
4 | SaveWorkspace: No
5 | AlwaysSaveHistory: Yes
6 |
7 | EnableCodeIndexing: Yes
8 | UseSpacesForTab: Yes
9 | NumSpacesForTab: 2
10 | Encoding: UTF-8
11 |
12 | RnwWeave: Sweave
13 | LaTeX: pdfLaTeX
14 |
15 | AutoAppendNewline: Yes
16 | StripTrailingWhitespace: Yes
17 |
--------------------------------------------------------------------------------
/code/01-animate_covid-biorxiv.R:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env Rscript
2 | # Source code: https://github.com/PoisonAlien/COVID_rXiv
3 | #
4 | # MIT License
5 | # Copyright (c) 2020 Anand Mayakonda
6 | #
7 | # Code for parsing meta-data from COVID related articles from biorxiv and medrxiv.
8 |
9 | library(data.table)
10 | library(jsonlite)
11 |
12 | #api = "https://api.biorxiv.org/covid19/"
13 | #Get top 30 most recent and parse the total number of articles
14 | #max_articles = jsonlite::fromJSON(txt = paste0(api, "0"))
15 | #max = max_articles$messages[,"total"]
16 | #message("Total number of articles: ", max)
17 | #API returns 30 entries per query
18 | #batches = seq(0, max, 30)
19 |
20 | # meta_data = parallel::mclapply(batches, function(batch){
21 | # jsonlite::fromJSON(txt = paste0(api, batch))[[2]][,c("rel_doi", "rel_site", "rel_date", "type", "category", "rel_num_authors")]
22 | # }, mc.cores = 4)
23 | #
24 | # meta_data = data.table::rbindlist(l = meta_data, use.names = TRUE, fill = TRUE)
25 | # if(nrow(meta_data) != max){
26 | # warning("Some entries are missing!")
27 | # }
28 | #
29 | # #Save to file
30 | # data.table::fwrite(x = meta_data, file = "COVID_rxiv_2020-12-18.tsv.gz", sep = "\t")
31 |
32 | #Start from here if you have the file downloaded already
33 |
34 | meta_data = data.table::fread(input = "COVID_rxiv_2020-12-18.tsv.gz")
35 |
36 | meta_data = meta_data[order(rel_date, decreasing = FALSE)]
37 | meta_data$ym = substr(meta_data$rel_date, 1, 7)
38 |
39 | date_lvls = seq.Date(as.Date(meta_data[1,rel_date]), as.Date(meta_data[nrow(meta_data),rel_date]), 1)
40 | meta_data[, pub_date := as.character.Date(rel_date)]
41 | meta_data = meta_data[,pub_date := factor(x = meta_data$pub_date, levels = as.character.Date(date_lvls), ordered = TRUE)]
42 |
43 | by_site = as.data.frame(table(meta_data$pub_date, meta_data$rel_site))
44 | data.table::setDT(by_site)
45 | colnames(by_site)[1] = "pub_date"
46 | by_site = data.table::dcast(data = by_site, pub_date ~ Var2, value.var = "Freq", fill = 0)
47 |
48 | by_site[, total := bioRxiv + medRxiv]
49 | by_site[, bioRxiv_cumsum := cumsum(bioRxiv)]
50 | by_site[, medRxiv_cumsum := cumsum(medRxiv)]
51 | by_site[, total_cumsum := cumsum(total)]
52 | by_site = by_site[order(pub_date)]
53 |
54 | by_site$Month = substr(by_site$pub_date, 1, 7)
55 | by_site$xax = 1:nrow(by_site)
56 | data.table::setDF(x = by_site)
57 |
58 |
59 | dir.create(path = "./pngs_bysrc/", showWarnings = FALSE, recursive = TRUE)
60 | xlabs = unlist(lapply(split(by_site, as.factor(by_site$Month)), function(x){min(x$xax)}))
61 |
62 | for(idx in seq_len(nrow(by_site))){
63 | data = by_site[1:idx,, drop = FALSE]
64 | ylims = c(0, max(data[,"total_cumsum"], na.rm = TRUE)+5)
65 | xlims = c(0, max(data[,"xax"])+5)
66 | png(filename = paste0("pngs_bysrc/", by_site[idx, "pub_date"], ".png"), width = 8, height = 5.5, units = "in", bg = "white", res = 100)
67 | #png("~/Downloads/test.png", width = 8, height = 5.5, units = "in", bg = "white", res = 100)
68 | #Set some pretty background color and change default font font
69 | par(bg = "#dfe4ea", family = "mono")
70 | plot(x = data$xax, y = data$total_cumsum, type = 'l', axes = FALSE, xlab = NA, ylab = NA, xlim = xlims, ylim = ylims, lwd = 1.2, col = "#2f3542")
71 | text(x = by_site[idx, "xax"], y = by_site[idx, "total_cumsum"], labels = paste0("combined [", by_site[idx, "total_cumsum"], "]"), pos = 3, xpd = TRUE, col = "#2f3542")
72 |
73 | points(x = data$xax, y = data$bioRxiv_cumsum, type = 'l', lwd = 1.2, col = "#e74c3c")
74 | text(x = by_site[idx, "xax"], y = by_site[idx, "bioRxiv_cumsum"], labels = paste0("bioRxiv [", by_site[idx, "bioRxiv_cumsum"], "]"), pos = 3, xpd = TRUE, col = "#e74c3c")
75 |
76 | points(x = data$xax, y = data$medRxiv_cumsum, type = 'l', lwd = 1.2, col = "#3498db")
77 | text(x = by_site[idx, "xax"], y = by_site[idx, "medRxiv_cumsum"], labels = paste0("medRxiv [", by_site[idx, "medRxiv_cumsum"], "]"), pos = 3, xpd = TRUE, col = "#3498db")
78 |
79 | text(x = by_site[idx, "xax"], y = by_site[idx, "cumN"], labels = by_site[idx, "N"], pos = 1, xpd = TRUE)
80 | axis(side = 2, at = pretty(ylims), lwd = 0, las = 2, col = "#34495e", col.axis = "#34495e")
81 | axis(side = 1, at = xlabs, labels = names(xlabs), las = 2, col = "#34495e", col.axis = "#34495e")
82 | title(main = paste0(by_site[idx, "pub_date"]), adj = 0, line = 2, font.main = 3, col.main = "#c0392b")
83 | title(main = paste0("bioRxiv = ", by_site[idx, "bioRxiv"], ", medRxiv = ", by_site[idx, "medRxiv"], ", total = ", by_site[idx, "total"]), adj = 0, line = 1, font.main = 3, col.main = "#34495e")
84 |
85 | par(fig = c(0.05,0.55, 0.45, 1), new = TRUE)
86 |
87 | if(max(data$total) > 10){
88 | b = boxplot(total ~ Month, data = data, axes = FALSE, xlab = NA, ylab = NA, outcex = 0.1, col = "#00b894", xlim = c(1, length(table(data$Month))))
89 | axis(side = 2, at = pretty(data$total), las = 2, col = "#34495e", col.axis = "#34495e", lwd = 0, line = -1, cex.axis = 0.7)
90 | axis(side = 1, at = 1:length(unique(data$Month)), las = 2, col = "#34495e", col.axis = "#34495e", labels = unique(data$Month), las= 2, cex.axis = 0.7, lwd = 0, line = -1)
91 | }
92 |
93 | dev.off()
94 | }
95 |
96 |
97 | #Output should be a GIF: `covid_rxiv.gif`
98 | system(command = "convert -loop 0 -delay 3 pngs_bysrc/*.png covid_rxiv.gif")
99 |
--------------------------------------------------------------------------------
/code/01-barplot_BechdelTest.R:
--------------------------------------------------------------------------------
1 | # Pretty barplots in base R
2 | # MIT License
3 | # Copyright (c) 2022 Anand Mayakonda
4 | # Recreating barplot from https://www.datawrapper.de/charts/stacked-bar-chart
5 |
6 |
7 | data = read.table(file = "../data/01-barplot_data.csv", sep = ",", header = TRUE)
8 | colnames(data) = c("Decade", "3 of 3", "2 of 3", "1 of 3", "0 of 3")
9 | rownames(data) = data$Decade
10 | data$Decade = NULL
11 | data = t(data)
12 |
13 | #A simple barplot
14 | barplot(data, horiz = T, las = 2)
15 |
16 | #Now lets pimp it up
17 | ## Choose some color codes
18 | colorcodes = c("#1abc9c", "#2980b9", "#d35400", "#c0392b")
19 |
20 | pdf(file = "barplot.pdf", width = 7, height = 4, bg = "white")
21 |
22 | #Adjust the margins (bottom, left, top, and right)
23 | par(mar = c(4, 3, 3, 1))
24 |
25 | b_idx = barplot(
26 | data,
27 | horiz = TRUE,
28 | las = 2,
29 | col = colorcodes,
30 | border = NA,
31 | axes = FALSE,
32 | names.arg = rep(NA, ncol(data))
33 | )
34 | mtext(text = colnames(data), side = 2, at = b_idx, las = 2, cex = 0.85, col = "#2c3e50")
35 | abline(v = seq(0, 100, 50), col = "gray90", lty = 1)
36 | axis(
37 | side = 3,
38 | at = seq(0, 100, 50),
39 | labels = paste0(seq(0, 100, 50), "%"),
40 | tick = FALSE,
41 | col.axis = "gray",
42 | line = -1,
43 | lwd = 0, cex.axis = 0.75
44 | )
45 |
46 | mainttl = "Percentage of films that pass the Bechdel test"
47 | subttl = "Dataset includes 7,924 films.\nDataset has many more ratings for films released in recent decades, so earlier decades are likely to be less accurately represented.\nSome ratings given to films have been contested and may not be accurate."
48 | subttl2 = "Source: Bechdel Test Website"
49 | title(main = mainttl, line = 2, cex.main = 0.9, col = "#2c3e50")
50 | title(
51 | main = NA,
52 | sub = subttl,
53 | line = 3,
54 | col.sub = "#7f8c8d",
55 | adj = 1,
56 | font = 3, cex = 0.3, cex.sub = 0.5
57 | )
58 | title(
59 | main = NA,
60 | sub = subttl2,
61 | line = 1.5,
62 | col.sub = "#7f8c8d",
63 | adj = 1,
64 | font = 3, cex = 0.3, cex.sub = 0.5
65 | )
66 |
67 | legend(
68 | x = -1, y = -0.5,
69 | legend = rownames(data),
70 | border = NA,
71 | ncol = nrow(data),
72 | col = colorcodes,
73 | pch = 15,
74 | bty = "n", xpd = TRUE, title = "criteria passed", cex = 0.9, adj = 0)
75 |
76 | for(i in 1:ncol(data)){
77 | text(
78 | y = b_idx[i],
79 | x = cumsum(data[, i]),
80 | labels = paste0(data[, i], "%"),
81 | cex = .6, adj = 1, col = "#ecf0f1"
82 | )
83 | }
84 |
85 | dev.off()
86 |
--------------------------------------------------------------------------------
/code/02-splitbarplot_PopGermany.R:
--------------------------------------------------------------------------------
1 | # Pretty split-barplots in base R
2 | # MIT License
3 | # Copyright (c) 2022 Anand Mayakonda
4 | # Recreating split-barplot from https://www.datawrapper.de/charts/
5 |
6 | data = read.table("../data/02-splitbarplot_data.csv", sep = ",", header = TRUE)
7 | max_count = max(data[,c("male", "female")]) #Maximum value
8 |
9 | pdf(file = "02-splitbarplot.pdf", width = 5, height = 4, bg = "white")
10 | par(mar = c(2, 3, 2, 1))
11 | plot(
12 | NA,
13 | xlim = c(-max_count, max_count),
14 | ylim = c(1, nrow(data)),
15 | frame.plot = FALSE,
16 | axes = FALSE,
17 | xlab = NA,
18 | ylab = NA
19 | )
20 |
21 | axis(
22 | side = 2,
23 | at = 1:nrow(data)+0.4,
24 | labels = rev(data$age.span),
25 | tick = FALSE,
26 | cex.axis = 0.8, las = 2, line = -1, col = "#34495e"
27 | )
28 |
29 | for(i in 1:nrow(data)){
30 | row_idx = rev(1:nrow(data))[i] #Plot the data from bottom to top
31 |
32 | rect(xleft = -max_count, ybottom = i, xright = -10, ytop = i+0.9, col = "#ecf0f1", border = NA)
33 |
34 | rect(
35 | xleft = -data[row_idx, "male"],
36 | xright = -10,
37 | ybottom = i,
38 | ytop = i + 0.9, col = "#2980b9", border = NA,
39 | )
40 | pretty_pop_male = ifelse(test = data[row_idx, 2] < 1e6,
41 | yes = paste0(round(data[row_idx, 2] / 1000, 1), "k"),
42 | no = paste0(round(data[row_idx, 2] / 1e6, 1), "m"))
43 |
44 | if(data[row_idx, 2] < 1e6){
45 | text(
46 | x = -data[row_idx, "male"],
47 | y = i + 0.4,
48 | labels = pretty_pop_male,
49 | pos = 2,
50 | outer = TRUE,
51 | xpd = TRUE, cex = 0.7, col = "black"
52 | )
53 | }else{
54 | text(
55 | x = -500,
56 | y = i + 0.4,
57 | labels = pretty_pop_male,
58 | pos = 2,
59 | outer = TRUE,
60 | xpd = TRUE, cex = 0.7, col = "white"
61 | )
62 | }
63 |
64 |
65 |
66 | rect(xleft = -10, ybottom = i, xright = max_count, ytop = i+0.9, col = "#ecf0f1", border = NA)
67 | rect(
68 | xleft = data[row_idx, "female"],
69 | xright = 10,
70 | ybottom = i,
71 | ytop = i + 0.9, col = "#c0392b", border = NA
72 | )
73 | pretty_pop_female = ifelse(test = data[row_idx, 3] < 1e6,
74 | yes = paste0(round(data[row_idx, 3] / 1000, 1), "k"),
75 | no = paste0(round(data[row_idx, 3] / 1e6, 1), "m"))
76 |
77 | if(data[row_idx, 2] < 1e6){
78 | text(
79 | x = data[row_idx, "female"],
80 | y = i + 0.4,
81 | labels = pretty_pop_male,
82 | pos = 4,
83 | outer = TRUE,
84 | xpd = TRUE, cex = 0.7, col = "black"
85 | )
86 | }else{
87 | text(
88 | x = 500,
89 | y = i + 0.4,
90 | labels = pretty_pop_female,
91 | pos = 4,
92 | outer = TRUE,
93 | xpd = TRUE, cex = 0.7, col = "white"
94 | )
95 | }
96 | }
97 |
98 | text(x = -max_count, y = nrow(data)+0.45, labels = "male", adj = 0, cex = 0.8, font = 1)
99 | text(x = max_count, y = nrow(data)+0.45, labels = "female", adj = 1, cex = 0.8, font = 1)
100 |
101 | title(main = "Population projection for Germany, 2020", line = 1, adj = 0, col.main = "#2c3e50")
102 | title(main = NA, sub = "Projection from 2015\nbased on continued trend with higher immigration
103 | ", line = 1, font.sub = 3, cex.sub = 0.6, adj = 1, col.sub = "#7f8c8d")
104 |
105 | dev.off()
--------------------------------------------------------------------------------
/code/03-dotplot_OldestCountry.R:
--------------------------------------------------------------------------------
1 | # Pretty Dot plot in base R
2 | # MIT License
3 | # Copyright (c) 2022 Anand Mayakonda
4 | # Recreating split-barplot from https://www.datawrapper.de/charts/
5 |
6 | data = read.table("../data/03-dotplot_data.csv", sep = ",", header = TRUE)
7 | data$Country[1:3] = c("Monaco", "Japan", "Germany")
8 | xlims = range(data[,2:4])
9 |
10 | pdf(file = "03-dotplot.pdf", width = 6, height = 5, bg = "white")
11 | par(mar = c(3, 5, 4, 1))
12 | plot(
13 | NA,
14 | xlim = xlims,
15 | ylim = c(1, nrow(data)),
16 | frame.plot = FALSE,
17 | axes = FALSE,
18 | xlab = NA,
19 | ylab = NA
20 | )
21 |
22 | abline(h = 1:nrow(data), col = "gray90")
23 | abline(v = pretty(xlims), col = "gray90")
24 | axis(side = 3, at = pretty(xlims), labels = pretty(xlims), col = "gray90", tick = FALSE, line = -1, cex.axis = 0.75, col.axis = "gray50")
25 |
26 | for(i in 1:nrow(data)){
27 | combined = rev(data[,"Combined"])[i]
28 | male = rev(data[,"Male"])[i]
29 | female = rev(data[,"Female"])[i]
30 |
31 | rect(xleft = male, ybottom = i-0.2, xright = female, ytop = i+0.2, col = "#bdc3c7", border = NA)
32 | points(x = combined, y = i, col = "#34495e", pch = 19, cex = 1.5)
33 | points(x = male, y = i, col = "#60a3bc", pch = 19, cex = 1.5)
34 | points(x = female, y = i, col = "#e58e26", pch = 19, cex = 1.5)
35 | }
36 |
37 | legend(
38 | x = 32, y = -0.5,
39 | legend = c("Combined", "Male", "Female"),
40 | border = NA,
41 | ncol = 3,
42 | col = c("#34495e", "#60a3bc", "#e58e26"),
43 | pch = 19,
44 | bty = "n", xpd = TRUE, cex = 0.9, adj = 0)
45 |
46 | axis(
47 | side = 2,
48 | at = 1:nrow(data),
49 | labels = rev(data$Country),
50 | tick = FALSE,
51 | cex.axis = 0.8, las = 2, line = -1, col = "#34495e"
52 | )
53 |
54 | title(
55 | main = "Germany is the third-oldest country in the world",
56 | line = 3,
57 | adj = 0,
58 | xpd = TRUE,
59 | cex.main = 1,
60 | col.main = "#2c3e50"
61 | )
62 |
63 | title(
64 | main = "Median age in the three countries with the oldest population and selected other countries, in years",
65 | line = 2,
66 | adj = 0,
67 | xpd = TRUE,
68 | cex.main = 0.6,
69 | col.main = "#2c3e50"
70 | )
71 |
72 | dev.off()
--------------------------------------------------------------------------------
/code/04-arrowplot_WomenInParliment.R:
--------------------------------------------------------------------------------
1 | # Pretty Arrow plot in base R
2 | # MIT License
3 | # Copyright (c) 2022 Anand Mayakonda
4 | # Recreating arrow plot from https://www.datawrapper.de/charts/
5 |
6 | data = read.table("../data/04-arrowplot_data.csv", sep = ",", header = TRUE)
7 | colnames(data) = c("Country", "y2000", "y2020", "group")
8 | data$diff = data$y2020 - data$y2000
9 |
10 | pan_ratio = unname(unlist(lapply(split(data, ~group), nrow)))
11 |
12 | asia = split(data, ~group)[[1]]
13 | eu = split(data, ~group)[[2]]
14 |
15 | title_txt = "Most countries have a higher share of women in their national parliaments than twenty years ago"
16 | subtitle_txt = "Proportion of seats held by women in national parliaments, 2000 and 2020,\nin selected countries in Europe, Central Asia, East Asia and the Pacific"
17 |
18 | lo = layout(matrix(1:3, ncol = 1), heights = c(2, pan_ratio))
19 | par(mar = c(0, 0, 0, 0))
20 | plot(NA, xlim = c(0, 1), ylim = c(0, 1), frame.plot = FALSE, axes = FALSE, xlab = NA, ylab = NA)
21 | text(x = 0, y = 0.8, labels = title_txt, cex = 1, font = 2, adj = 0)
22 | text(x = 0, y = 0.35, labels = subtitle_txt, cex = 1, font = 3, adj = 0)
23 |
24 | par(mar = c(2, 7, 1, 1))
25 |
26 | lapply(split(data, ~group), function(dat){
27 | plot(
28 | NA,
29 | xlim = c(0, 50),
30 | ylim = c(1, nrow(dat)),
31 | frame.plot = FALSE,
32 | axes = FALSE,
33 | xlab = NA,
34 | ylab = NA
35 | )
36 | abline(h = 1:nrow(dat), v = c(0, 25, 50), col = "gray90", lwd = 0.6, outer = FALSE)
37 | abline(v = 0, col = "gray")
38 | rect(xleft = dat$y2000, ybottom = 1:nrow(dat), xright = dat$y2020, ytop = 1:nrow(dat), lwd = 1.5, col = ifelse(test = dat$diff > 0, yes = "#3498db", no = "#eb2f06"), border = ifelse(test = dat$diff > 0, yes = "#3498db", no = "#eb2f06"))
39 | for(i in 1:nrow(dat)){
40 | if(dat$diff[i] > 0){
41 | points(x = dat$y2020[i], y = i, pch = ">", col = "#3498db")
42 | text(x = dat$y2020[i], y = i, labels = paste0(dat$y2020[i], "%"), col = "#0c2461", pos = 4, cex = 0.9, xpd = TRUE)
43 | }else{
44 | points(x = dat$y2020[i], y = i, pch = "<", col = "#eb2f06")
45 | text(x = dat$y2020[i], y = i, labels = paste0(dat$y2000[i], "%"), pos = 2, col = "#eb2f06", cex = 0.9, xpd = TRUE)
46 | }
47 | }
48 |
49 | axis(side = 2, at = 1:nrow(dat), labels = dat$Country, las = 2, tick = FALSE, line = -0.75, col = "#2c3e50", cex.axis = 1)
50 | axis(side = 1, at = c(0, 25, 50), labels = paste0(c(0, 25, 50), "%"), tick = FALSE, line = -1, col.axis = "gray50", cex.axis = 1)
51 |
52 | title(x = "topright", main = dat$group[1], adj = 1, col.main = "#2c3e50", cex.main = 0.9)
53 | })
54 |
55 | bottom_anno = split(data, ~group)[[2]]
56 | bottom_anno = unlist(bottom_anno[nrow(bottom_anno), c(2, 3)])
57 | axis(side = 3, at = bottom_anno, labels = c("2000", "2020"), tick = FALSE, line = -1, col.axis = "#7f8c8d", cex.axis = 0.75)
58 |
--------------------------------------------------------------------------------
/code/05-linechart_COVIDrXiv.R:
--------------------------------------------------------------------------------
1 | # Pretty Line chart in base R
2 | # MIT License
3 | # Copyright (c) 2022 Anand Mayakonda
4 | # Visualizing COVID-19 biorxiv/medrxiv articles
5 |
6 | arxiv_data = read.delim(file = "../data/COVID_rxiv_2020-12-18.tsv")
7 | arxiv_data$rel_date = as.Date.character(arxiv_data$rel_date)
8 | date_lvls = seq.Date(as.Date(arxiv_data[1,"rel_date"]), as.Date(arxiv_data[nrow(arxiv_data),"rel_date"]), 1)
9 | arxiv_data$date = factor(x = arxiv_data$rel_date, levels = as.character.Date(date_lvls), ordered = TRUE )
10 |
11 | biorxiv = data.frame(n_articles = unlist(lapply(split(arxiv_data[arxiv_data$rel_site %in% "bioRxiv",], ~date), nrow)))
12 | medrxiv = data.frame(n_articles = unlist(lapply(split(arxiv_data[arxiv_data$rel_site %in% "medRxiv",], ~date), nrow)))
13 |
14 | data = merge(biorxiv, medrxiv, by = "row.names", suffixes = c("_biorxiv", "_medrxiv"))
15 | data$n_articles = rowSums(data[,c("n_articles_biorxiv", "n_articles_medrxiv")])
16 | rownames(data) = data$Row.names
17 | #data = data.frame(n_articles = unlist(lapply(split(arxiv_data, ~date), nrow)))
18 | data$ym = substr(x = rownames(data), start = 1, stop = 7)
19 | data$yr = substr(x = rownames(data), start = 1, stop = 4)
20 |
21 | month_lines = cumsum(lapply(split(data, ~ym), nrow))
22 | year_lines = cumsum(lapply(split(data, ~yr), nrow))
23 | #
24 | heatcols = colorRampPalette(c("#EFF3FF", "#C6DBEF", "#9ECAE1", "#6BAED6", "#4292C6", "#2171B5", "#084594"))(180)
25 |
26 | par(mar = c(3, 3, 4, 1), family = "mono")
27 | plot(NA, xlim = c(0, nrow(data)), ylim = c(0, 170), frame.plot = FALSE, axes = FALSE, xlab = NA, ylab = NA)
28 | abline(v = month_lines, col = "gray90", lty = 1, lwd = 0.6)
29 | abline(v = year_lines[c("2020", "2021")], col = "#2c3e50", lwd = 0.9)
30 | abline(h = seq(0, 150, 25), col = "gray90", lwd = 0.9, lty = 2)
31 |
32 | axis(side = 1, at = month_lines, labels = substr(x = names(month_lines), 6, 7), las = 2, tick = FALSE, cex.axis = 0.6, line = -0.75, font.axis = 3, col.axis = "#95a5a6")
33 | axis(side = 2, at = seq(0, 150, 25), labels = seq(0, 150, 25), las = 2, tick = FALSE, line = -0.5, col.axis = "#95a5a6")
34 | axis(side = 3, at = year_lines[c("2020", "2021")], labels = c("2020", "2021"), tick = FALSE, line = -1, col.axis = "#8e44ad")
35 |
36 | pnt_col = "#95a5a6"
37 | # points(
38 | # x = 1:nrow(data),
39 | # y = data$n_articles,
40 | # pch = 20,
41 | # col = adjustcolor(col = pnt_col, alpha.f = .5), cex = 0.9
42 | # )
43 | #lines(smooth.spline(x = 1:nrow(data), y = data$n_articles), col = pnt_col, lwd = 3)
44 |
45 | #e67e22
46 | biorxiv_col = "#e67e22"
47 | points(
48 | x = 1:nrow(data),
49 | y = data$n_articles_biorxiv,
50 | pch = 20,
51 | col = adjustcolor(col = biorxiv_col, alpha.f = 0.2), cex = 0.9
52 | )
53 | lines(smooth.spline(x = 1:nrow(data), y = data$n_articles_biorxiv), col = biorxiv_col, lwd = 3)
54 |
55 | medrxiv_col = "#27ae60"
56 | points(
57 | x = 1:nrow(data),
58 | y = data$n_articles_medrxiv,
59 | pch = 20,
60 | col = adjustcolor(col = medrxiv_col, alpha.f = 0.2), cex = 0.9
61 | )
62 | lines(smooth.spline(x = 1:nrow(data), y = data$n_articles_medrxiv), col = medrxiv_col, lwd = 3)
63 |
64 | #mtext(text = "Month", side = 1, line = 1.5, font = 2)
65 | #mtext(text = "# of articles", side = 2, line = 2, font = 2)
66 |
67 | title(main = "Frequency of COVID19 articles in bioRxiv and medRxiv", adj = 0, line = 2, col.main = "#34495e", cex.main = 1)
68 |
69 | legend(x = "topleft", legend = c("bioRxiv", "medRxiv"), col = c(biorxiv_col, medrxiv_col), bty = "n", lwd = 2)
--------------------------------------------------------------------------------
/code/05-linechart_CigConsumption.R:
--------------------------------------------------------------------------------
1 | # Pretty Line chart in base R
2 | # MIT License
3 | # Copyright (c) 2022 Anand Mayakonda
4 | # Recreating line chart from https://www.datawrapper.de/charts/
5 |
6 | data = read.table("../data/05-linechart_data.csv", sep = ",", header = TRUE)
7 | data[data == "null"] = NA
8 | data = apply(data, 2, as.numeric)
9 | data = as.data.frame(data)
10 | rownames(data) = data$country
11 |
12 | max_count = max(data[,2:ncol(data)], na.rm = TRUE)
13 |
14 | title_main = "The rise and fall of cigarette consumption in developed countries"
15 | title_sub = "Sales of cigarettes per adult per day, in selected countries.\nFigures include manufactured cigarettes, as well as an estimated\nnumber of hand-rolled cigarettes,per adult (ages 15+) per day."
16 |
17 | layout(mat = matrix(data = c(1:2), nrow = 2), heights = c(2, 6))
18 |
19 | par(mar = c(0, 0, 0, 0))
20 | plot(NA, xlim = c(0, 1), ylim = c(0, 1), frame.plot = FALSE, axes = FALSE, xlab = NA, ylab = NA)
21 | text(x = 0, y = 0.8, labels = title_main, cex = 1, font = 2, adj = 0)
22 | text(x = 0, y = 0.35, labels = title_sub, cex = 1, font = 3, adj = 0)
23 |
24 | par(mar = c(3, 2, 0, 1))
25 | plot(NA, xlim = range(data$country), ylim = c(0, max_count), xlab = NA, ylab = NA, frame.plot = FALSE, axes = FALSE)
26 | axis(side = 2, at = seq(0, 12, 2), labels = seq(0, 12, 2), line = 0, col.axis = "gray", cex.axis = 1, las = 2, tick = FALSE)
27 | abline(h = seq(0, 12, 2), lwd = 1, col = "gray90")
28 |
29 | text(x = data$country[1], y = 10, labels = "Sold cigarettes\nper day per adult", cex = 0.7, xpd = TRUE, adj = 0)
30 |
31 | for(i in 2:ncol(data)){
32 | points(x = data$country, y = data[,i], pch = "", type = "l", col = "#7f8c8d")
33 | }
34 |
35 | hghlt = c("United.States", "Germany", "France")
36 | hghlt_cols = c("#c0392b", "#16a085", "#2980b9")
37 | for(hghlt_idx in seq_along(hghlt)){
38 | hghlt_col_idx = which(colnames(data) == hghlt[hghlt_idx])
39 | points(x = data$country, y = data[,hghlt_col_idx], pch = "", type = "l", col = hghlt_cols[hghlt_idx], lwd = 2)
40 | }
41 |
42 | text(x = data$country[1], y = c(6:4), labels = hghlt, col = hghlt_cols, adj = 0)
43 |
44 | axis(side = 1, at = pretty(data$country), labels = pretty(data$country), line = 0, tick = TRUE, col.axis = "#7f8c8d", col = "#7f8c8d")
--------------------------------------------------------------------------------
/code/06-scatterplot_RichGDP.R:
--------------------------------------------------------------------------------
1 | # Pretty Scatter plots in base R
2 | # MIT License
3 | # Copyright (c) 2022 Anand Mayakonda
4 | # Recreating scatter plot from https://www.datawrapper.de/charts/
5 |
6 | #data = read.table("06-scatterplot_data.csv", sep = ",", header = TRUE)
7 | data = data.table::fread(input = "../data/06-scatterplot_RichGDP.csv", data.table = FALSE)
8 |
9 | data$population = as.numeric(data$population)
10 | #data$bub_size = data$population/max(data$population, na.rm = TRUE)
11 | cols = c("#34495e", "#ff5252", "#34ace0", "#ffb142", "#218c74", "#84817a")
12 | cols = adjustcolor(col = cols, alpha.f = 0.6)
13 | names(cols) = names(table(data$regions))
14 |
15 | title_main = "The richer, the healthier"
16 | title_sub = "GDP per person adjusted for differences in purchasing power (in 2011 international dollars) and life expectancy in years for selected countries, 2018.\nThe bigger a circle, the more people live in a country."
17 |
18 | pdf(file = "06-scatterplot.pdf", height = 3.5, width = 5, bg = "white")
19 |
20 | layout(mat = matrix(data = c(1:2), nrow = 2), heights = c(2, 6))
21 |
22 | par(mar = c(0, 0, 0, 0))
23 | plot(NA, xlim = c(0, 1), ylim = c(0, 1), frame.plot = FALSE, axes = FALSE, xlab = NA, ylab = NA)
24 | text(x = 0, y = 0.8, labels = title_main, cex = 1, font = 2, adj = 0)
25 | text(x = 0, y = 0.6, labels = title_sub, cex = 0.6, font = 3, adj = 0)
26 |
27 | legend(x = .1, y = 0.4, legend = names(cols), col = cols, pch = 19, ncol = 3, bty = "n", cex = 0.7)
28 |
29 |
30 |
31 | data$logGDP = log10(data$`GDP per capita`)
32 |
33 | par(mar = c(2, 2, 0, 1))
34 | plot(NA, xlim = range(pretty(data$logGDP)), ylim = c(50, 90), xlab = NA, ylab = NA, frame.plot = FALSE, axes = FALSE)
35 | axl_lb = round(10^pretty(data$logGDP))
36 | axl_lb = ifelse(test = axl_lb > 1000, yes = paste0(round(axl_lb/1000), "k"), no = round(axl_lb))
37 |
38 | axis(side = 1, at = pretty(data$logGDP), labels = axl_lb, col.axis = "#7f8c8d", tick = FALSE, col = "gray", cex.axis = 0.8, line = -.5)
39 | axis(side = 2, at = seq(50, 100, 10), col.axis = "#7f8c8d", tick = FALSE, col = "gray", cex.axis = 0.8, las = 2, line = -0.5)
40 | abline(h = seq(50, 100, 10), v = pretty(data$logGDP), col = "gray90")
41 |
42 | text(x = rev(pretty(data$logGDP))[1], y = 50, labels = "GDP per capita", col = "#34495e", adj = 1, cex = 0.7, font = 2)
43 | text(x = pretty(data$logGDP)[1], y = 90, labels = "Life Expectancy", col = "#34495e", adj = 0, cex = 0.7, font = 2)
44 |
45 | symbols(
46 | x = data$logGDP,
47 | y = data$`Life expectancy`,
48 | circles = sqrt(data$population / pi),
49 | inches = 0.18, add = TRUE, bg = cols[data$regions], fg = cols[data$regions]
50 | )
51 |
52 | bot_cntrs = data[data$country %in% c("South Africa", "China", "Afghanistan", "Lesotho", "United Arab Emirates"),]
53 | text(x = bot_cntrs$logGDP, y = bot_cntrs$`Life expectancy`, labels = bot_cntrs$country, pos = 1, cex = 0.6, col = "#2c2c54")
54 | top_cntrs = data[data$country %in% c("Liberia", "Timor-Leste", "Nicaragua", "Costa Rica"),]
55 | text(x = top_cntrs$logGDP, y = top_cntrs$`Life expectancy`, labels = top_cntrs$country, pos = 3, cex = 0.6, col = "#2c2c54")
56 |
57 | dev.off()
--------------------------------------------------------------------------------
/code/07-areachart_USmigration.R:
--------------------------------------------------------------------------------
1 | # Area diagrams in R
2 | # MIT License
3 | # Copyright (c) 2022 Anand Mayakonda
4 | # Data source: https://app.datawrapper.de/chart/wsfqj/visualize
5 |
6 |
7 | data = read.table(file = "../data/07-areachart_USmigration.csv", header = TRUE, sep = ",")
8 |
9 | #Maximum
10 | max_pop = max(rowSums(data[,2:ncol(data)]))
11 |
12 | layout(mat = matrix(data = c(1:2), nrow = 2), heights = c(0.75, 6))
13 |
14 | par(family = "mono")
15 | par(mar = c(0, 0, 0, 0))
16 | plot(NA, xlim = c(0, 1), ylim = c(0, 1), frame.plot = FALSE, axes = FALSE, xlab = NA, ylab = NA)
17 | title_main = "Migration to the US by world region, 1820-2009"
18 | title_main2 = "The numbers are recorded by decade\nFor example, the numbers recorded for 1905 tell us the number of immigrants between 1900 and 1910."
19 |
20 | title(main = title_main, cex.main = 1, line = -1, family = "Helvetica", col.main = "#2C3A47", adj = 0)
21 | title(main = title_main2, cex.main = .75, line = -2.5, family = "Helvetica", col.main = "#2C3A47", adj = 0, font.main = 1)
22 |
23 |
24 | par(mar = c(1, 1, 1, 3))
25 | plot(
26 | NA,
27 | xlim = range(data$Region.and.country.of.last.residence.1),
28 | ylim = c(0, max_pop),
29 | xlab = NA,
30 | ylab = NA,
31 | frame.plot = FALSE,
32 | axes = FALSE
33 | )
34 |
35 | abline(h = pretty(c(0, max_pop)), col = "gray90")
36 | axis(side = 4, at = pretty(c(0, max_pop)), labels = paste0(seq(0, 12, 2), "M"), las = 2, tick = FALSE, line = .1, col.axis = "#34495e", cex.axis = 0.8)
37 | axis(side = 1, at = seq(1820, 2000, 10), tick = FALSE, cex.axis = 0.8, col.axis = "#34495e", line = -1.5)
38 |
39 | rect(xleft = 1914, ybottom = 0, xright = 1918, ytop = max_pop, col = "#95a5a6", border = NA)
40 | text(x = 1916, y = max_pop, labels = "WW1", cex = 0.75, pos = 3, xpd = TRUE, font = 4, adj = 1)
41 | rect(xleft = 1939, ybottom = 0, xright = 1945, ytop = max_pop, col = "#95a5a6", border = NA)
42 | text(x = 1942, y = max_pop, labels = "WW2", cex = 0.75, pos = 3, xpd = TRUE, font = 4, adj = 1)
43 |
44 | cols = c("white", "#1d81a2", "#004765", "#3a96b8", "#48adc0", "#329a9b", "#2b8589",
45 | "#257085", "#005d71",
46 | "#b4241c", "#cd3d2e", "#dc464b", "#e65340",
47 | "#ffa126", "#ffca76", "#ffe59c", "#fffbb1", "#ffdc6b", "#ffbb7f",
48 | "#009a69", "#003f65", "#181818", "black")
49 | #cols = adjustcolor(col = cols, alpha.f = 0.7)
50 |
51 | for(i in 22:2){
52 | if(i > 2){
53 | polygon(
54 | c(
55 | data[1, "Region.and.country.of.last.residence.1"],
56 | data$Region.and.country.of.last.residence.1,
57 | data[nrow(data), "Region.and.country.of.last.residence.1"]
58 | ),
59 | c(0, rowSums(data[, 2:i, drop = FALSE]), 0),
60 | col = cols[i], border = cols[i]
61 | )
62 |
63 | }else{
64 | polygon(data$Region.and.country.of.last.residence.1,
65 | data[,i],
66 | col = cols[i], border = cols[i])
67 | }
68 | }
69 |
70 | to_hghlt = c("Germany", "United.Kingdom", "Austria.Hungary","Ireland", "Philippines", "Italy", "Russia", "India", "China", "Mexico", "Central.America")
71 |
72 | for(h in to_hghlt){
73 | i = which(colnames(data) == h)
74 | max_idx = which(data[,i] == max(data[,i]))
75 | y_point = data[,i] + rowSums(data[,2:(i-1), drop = FALSE])
76 | text(x = data[max_idx,1], y = y_point[max_idx], labels = colnames(data)[i], cex = 0.55, xpd = TRUE, font = 2, family = "mono", col = "#192a56")
77 | }
78 |
79 | text(x = 1900, y = 1e6, label = "EUROPE", col = "white", cex = 1.2, font = 2)
80 | text(x = 1990, y = 2e6, label = "ASIA", col = "white", cex = 1.2, adj = 0.8, font = 2)
81 | text(x = 1990, y = 6e6, label = "AMERICA", col = "#2c3e50", cex = 1.2, adj = 0.7, font = 2)
--------------------------------------------------------------------------------
/code/08-donutplot_TopWealth.R:
--------------------------------------------------------------------------------
1 | # Pretty donut plots in base R
2 | # MIT License
3 | # Copyright (c) 2022 Anand Mayakonda
4 | # Recreating donut plot from https://www.datawrapper.de/charts/
5 |
6 | data = read.table("../data/08-donutplot_data.csv", sep = ",", header = TRUE)
7 |
8 | #pdf(file = "08-donutplot.pdf", height = 4, width = 5, bg = "white")
9 |
10 | lo =layout(mat = matrix(data = c(1, 1, 1, 2:7), nrow = 3, ncol = 3, byrow = TRUE), heights = c(1.7, 3, 3))
11 |
12 | par(mar = c(0, 0, 0, 0))
13 | title_main = "Who gets which slice of the pie?"
14 | title_sub = "How much of the wealth of a country do the poorest 50% own?\nHow much do the top 10% own?"
15 |
16 | plot(NA, xlim = c(0, 1), ylim = c(0, 1), frame.plot = FALSE, axes = FALSE, xlab = NA, ylab = NA)
17 | text(x = 0, y = 0.9, labels = title_main, cex = 1.5, font = 2, adj = 0)
18 | text(x = 0, y = 0.6, labels = title_sub, cex = 1.2, font = 3, adj = 0)
19 | legend(x = .1, y = 0.4, legend = c("bottom 50%", "next 40%", "top 10%"), col = c("#b33939", "#f7f1e3", "#40407a"), pch = 15, ncol = 3, bty = "n", cex = 1.4)
20 |
21 | par(mar = c(2, 2, 2, 2))
22 |
23 | for (i in 2:ncol(data)) {
24 | pie(
25 | data[, i],
26 | radius = 1,
27 | clockwise = TRUE,
28 | labels = paste0(round(data[, i]), "%"), border = "white",
29 | col = c("#b33939", "#f7f1e3", "#40407a")
30 | )
31 | points(x = 0, y = 0, pch = 19, cex = 10, col = "white", lwd = 0)
32 | title(main = colnames(data)[i], adj = 0)
33 | }
34 |
35 | #dev.off()
36 |
--------------------------------------------------------------------------------
/code/09-plot_CalFire.R:
--------------------------------------------------------------------------------
1 | # Widlfiles in California
2 | # MIT License
3 | # Copyright (c) 2022 Anand Mayakonda
4 | # Recreating plot from https://www.buzzfeednews.com/article/peteraldhous/california-wildfires-people-climate
5 | # Original ggplot source: https://buzzfeednews.github.io/2018-07-wildfire-trends/
6 |
7 | #download.file(url = "https://raw.githubusercontent.com/BuzzFeedNews/2018-07-wildfire-trends/master/data/calfire_frap.csv", destfile = "data/09-calfire_frap.csv")
8 | data = read.delim(file = "data/09-calfire_frap.csv", sep = ",")
9 |
10 | date_lvls = seq.Date(as.Date("1950/01/01"), as.Date("2017/12/31"), 1)
11 | md = names(table(substr(date_lvls, 6, 10)))
12 |
13 | data$reporting_date = factor(data$alarm_date, levels = as.character.Date(date_lvls), ordered = TRUE)
14 | data$reporting_date = as.Date(data$reporting_date)
15 | data = data[order(data$reporting_date),]
16 | data$md = substr(x = data$reporting_date, 6, 10)
17 | data$md = factor(x = data$md, levels = md, ordered = TRUE)
18 |
19 | #layout(mat = matrix(data = c(1:2), nrow = 2), heights = c(0.75, 6))
20 |
21 | par(mar = c(1, 3, 3, 1), family = "mono")
22 | plot(NA, pch = NA, axes = FALSE, ylim = c(1950,2017), xlim = c(1, 366))
23 | abline(h = 1950:2017, v = c(0, cumsum(table(substr(md, 1, 2)))), col = "gray90")
24 | abline(h = seq(1950, 2010, 10), col = adjustcolor("#34495e", 0.5), lwd = 1)
25 | symb_cols = adjustcolor(col = "#e74c3c", alpha.f = 0.6)
26 | symbols(
27 | x = data$md,
28 | y = data$year_, add = TRUE,
29 | circles = sqrt(data$gis_acres / pi),
30 | inches = 0.12, bty = "n", pch = 19, bg = symb_cols, fg = symb_cols
31 | )
32 | axis(side = 1, at = cumsum(table(substr(md, 1, 2))), labels = month.abb, tick = FALSE, col.axis = "#34495e", line = -1.2, cex.axis = 0.7)
33 | axis(side = 2, at = seq(1950, 2010, 10), las = 2, tick = FALSE, line = -1, col.axis = "#34495e")
34 |
35 | title("Big fires have gotten more common in California", adj = 0, line = 2, family = "Helvetica", col.main = "#2C3A47")
36 | title("Each fire is a dot that is scaled by the area that ultimately burned, centered on the date on which\nthe alarm was sounded", adj = 0, line = 0, font.main = 1, cex.main = 0.8, family = "Helvetica", col.main = "#2C3A47")
37 |
--------------------------------------------------------------------------------
/code/10-donut_BloodGroup.R:
--------------------------------------------------------------------------------
1 | # Blood group distribution across the world
2 | # MIT License
3 | # Copyright (c) 2022 Anand Mayakonda
4 | # Recreating plot from https://www.visualcapitalist.com/visualizing-the-most-widespread-blood-types-in-every-country/
5 |
6 | data = read.delim(file = "data/10-donut_BloodGroup.tsv")
7 | data2 = read.delim(file = "data/10-donut_BloodGroupCountry.tsv")
8 |
9 |
10 | cols = hcl.colors(n = 8, palette = "Viridis", alpha = 0.8)
11 | cols = c("#c23616", "#f0932b", "#f9ca24", "#6ab04c", "#40739e", "#192a56", "#ff9ff3", "purple")
12 |
13 | # lomat = matrix(data = c(1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,
14 | # 6,6,6,7,7,7,8,8,8,9,9,9,10,10,10,
15 | # 11,11,11,0,12,12,12,0,13,13,13,0,14,14,14,
16 | # 0,0,15,15,15,0,16,16,16,0,17,17,17,0,0),
17 | # nrow = 4, byrow = TRUE)
18 |
19 | lomat = matrix(data = c(rep(1, 5), 2:11, rep(12, 5)), nrow = 4, ncol = 5, byrow = TRUE)
20 |
21 | lo = layout(mat = lomat, heights = c(0.5, 3, 3, 1))
22 |
23 | par(mar = c(0, 0, 0, 0), bg = "#ecf0f1")
24 | plot(NA, xlim = c(0, 1), ylim = c(0, 1), axes = FALSE)
25 | title(
26 | main = "Distribution of Blood types by country",
27 | line = -3,
28 | cex.main = 2.3,
29 | col.main = "white",
30 | xpd = TRUE,
31 | outer = TRUE,
32 | family = "Helvetica", col.main = "#222f3e"
33 | )
34 | # text(
35 | # x = 0.5,
36 | # y = 0.3,
37 | # label = "Distribution of Blood types by country",
38 | # cex = 2,
39 | # font = 2,
40 | # col = "white", xpd = TRUE, family = "Helvetica"
41 | # )
42 |
43 |
44 | par(mar = c(1, 1, 1, 1))
45 |
46 | for(i in 1:nrow(data2)){
47 | pie(
48 | as.numeric(data2[i, 2:9]),
49 | clockwise = TRUE,
50 | col = cols,
51 | border = cols,
52 | labels = paste0(as.numeric(data2[i, 2:ncol(data)])[1:4], "%"), radius = 1.05, col.lab = "white", xpd = TRUE, cex = 0.8
53 | ) #
54 | points(x = 0, y = 0, pch = 19, cex = 8, col = "#ecf0f1", lwd = 0)
55 | #legend(x = "bottomright", legend = data[i,"Region"], bty = "n", cex.title = 1.2, adj = 0)
56 | text(
57 | x = 0,
58 | y = -2,
59 | label = paste0(data2[i, "Country"], "\n", data2[i, "Pop"]),
60 | family = "mono",
61 | cex = 1.5,
62 | xpd = TRUE,
63 | font = 2,
64 | col = "#535c68"
65 | )
66 | }
67 |
68 | plot(NA, xlim = c(0, 1), ylim = c(0, 1), axes = FALSE)
69 | legend(
70 | x = "center",
71 | legend = c("O+", "A+", "B+", "AB+", "O-", "A-", "B-", "AB-"),
72 | col = cols,
73 | ncol = 8,
74 | pch = 15, bty = "n", cex = 1.7
75 | )
76 |
77 | # for(i in 1:nrow(data)){
78 | # pie(
79 | # as.numeric(data[i, 2:ncol(data)]),
80 | # clockwise = TRUE,
81 | # col = cols,
82 | # border = cols,
83 | # labels = paste0(as.numeric(data[i, 2:ncol(data)]), "%"), radius = 1.05, col.font = cols, xpd = TRUE, cex = 0.8
84 | # ) #
85 | # points(x = 0, y = 0, pch = 19, cex = 8, col = "white", lwd = 0)
86 | # #legend(x = "bottomright", legend = data[i,"Region"], bty = "n", cex.title = 1.2, adj = 0)
87 | # text(x = 0, y = -2, label = data[i,"Region"], family = "mono", cex= 1.4, xpd= TRUE, font = 2)
88 | # }
89 |
90 |
91 |
--------------------------------------------------------------------------------
/code/11-bubblechart_Furturejobs2030.R:
--------------------------------------------------------------------------------
1 | # The 20 Fastest Growing Jobs in the Next Decade
2 | # MIT License
3 | # Copyright (c) 2022 Anand Mayakonda
4 | # Recreating plot from https://www.visualcapitalist.com/the-20-fastest-growing-jobs-in-the-next-decade/
5 |
6 | data = read.delim(file = "data/11-bubblechart_furturejobs2030.tsv")
7 |
8 | cols = c("#16a085", "#2980b9", "#f39c12", "#8e44ad", "#e74c3c")
9 | cols = adjustcolor(col = cols, alpha.f = 0.6)
10 | names(cols) = names(table(data$categ))
11 |
12 | par(mar = c(1, 4, 4, 4), family = "sans", bg = "#ecf0f1")
13 | plot(NA, xlim = range(pretty(data$median_ann_wage)), ylim = c(-40, 80), axes = FALSE, xlab = NA, ylab = NA)
14 | grid(col = "gray80")
15 |
16 | symbols(
17 | x = data$median_ann_wage,
18 | y = data$pct_empl_change,
19 | circles = sqrt(abs(data$num_empl_change / pi)),
20 | add = TRUE, inches = 0.9, bg = cols[data$categ], fg = "#ecf0f1"
21 | )
22 |
23 | #rect(xleft = seq(45, 105, 15)*1000, ybottom = 75, xright = seq(60, 120, 15)*1000, ytop = 80, col = cols, border = cols)
24 | rect(xleft = seq(70, 110, 10)*1000, ybottom = 75, xright = seq(80, 120, 10)*1000, ytop = 80, col = cols, border = cols)
25 | text(x = seq(75, 115, 10)*1000, y = 85, labels = c("Computer&\nmath", "Health\nrerlated", "Office\nsupport", "Other", "Production"), xpd = TRUE, adj = 0.5, family = "sans", cex = 0.65)
26 |
27 | if("berryFunctions" %in% installed.packages()){
28 | berryFunctions::roundedRect(xleft = 68*1000, ybottom = 72, xright = 122*1000, ytop = 90, xpd = FALSE, lwd = 1.4)
29 | }else{
30 | rect(xleft = 40*1000, ybottom = 72, xright = 122*1000, ytop = 90, xpd = FALSE, lwd = 1.4)
31 | }
32 |
33 | axis(side = 2, at = seq(0, 80, 20), tick = FALSE, las = 2, labels = paste0(seq(0, 80, 20), "%"), col.axis = "#34495e", line = -0.75, cex.axis = 0.8)
34 | mtext(text = "Employment change %\n2020-2030", side = 2, at = 60, line = 2, col = "#2c3e50", cex = 0.9)
35 |
36 | axis(side = 4, at = seq(-20, -40, -20), tick = FALSE, las = 2, labels = paste0(seq(-20, -40, -20), "%"), col.axis = "#34495e", cex.axis = 0.8, line = -0.75)
37 | rect(xleft = 20000, ybottom = 0, xright = 120000, ytop = 0)
38 | text(x = pretty(data$median_ann_wage), y = 0, labels = paste0(pretty(data$median_ann_wage)/1000, "K"), pos = 3, col = "#34495e", xpd = TRUE, cex = 0.8)
39 | text(x = 120000, y = -3, label = "Median annual wage", family = "mono", cex = 0.8, font = 2, adj = 1, col = "#2c3e50")
40 |
41 |
42 | #Annotate some bubbles manually
43 | text(x = 30000, y = 50, label = ("Home health &\npersonal care aids"), cex = 0.6, col = "#34495e")
44 | text(x = 118000, y = 65, label = ("Nurse\npractitioners"), cex = 0.6, col = "#34495e")
45 | text(x = 95000, y = 40, label = ("Statisticians"), cex = 0.6, adj = 1, col = "#34495e")
46 | text(x = 60000, y = 42, label = ("PT assistants"), cex = 0.6, col = "#34495e")
47 | text(x = 60000, y = 42, label = ("PT assistants"), cex = 0.6, col = "#34495e")
48 | text(x = 56230, y = 63, label = ("Wind turbine &\nservice technicians"), cex = 0.6, col = "#34495e")
49 |
50 | rect(xleft = 85700, ybottom = 18, xright = 85700, ytop = 25.5, border = "#2980B999")
51 | text(x = 85700, y = 14, label = ("Genetic\ncounselors"), cex = 0.6, col = "#34495e")
52 |
53 | rect(xleft = 70000, ybottom = 20, xright = 70000, ytop = 29.6, border = "#2980B999")
54 | rect(xleft = 70000, ybottom = 29.6, xright = 74560, ytop = 29.6, border = "#2980B999")
55 | text(x = 70000, y = 17, label = ("Epidemiologists"), cex = 0.6, col = "#34495e")
56 |
57 | text(x = 65110, y = -30, label = ("Executive secretaries &\n admin assistants"), cex = 0.6, col = "#34495e")
58 | text(x = 46500, y = -29, label = ("Watch&\nclock repairers"), cex = 0.6, col = "#34495e")
59 | text(x = 105000, y = -38, label = ("Nuclear power\nreactor operator"), cex = 0.6, col = "#34495e")
60 |
61 | rect(xleft = 22140, ybottom = -20.1, xright = 29140, ytop = -20.1, border = "#8E44AD99")
62 | text(x = 22140, y = -22, label = ("Florists"), cex = 0.6, col = "#34495e")
63 |
64 | text(x = 31630, y = -34, label = ("Cutters&\ntrimmers"), cex = 0.6, col = "#34495e")
65 |
66 | title(main = "The 20 Fastest Growing and Declining Jobs", adj = 0, line = 2.5, cex.main = 1.4, col.main = "#2c3e50")
67 | title(main = "OVER THE NEXT DECADE", adj = 0, line = 1.5, cex.main = 0.9, col.main = "#2c3e50")
68 |
--------------------------------------------------------------------------------
/code/14-barplot_BerlinMarathon2022.R:
--------------------------------------------------------------------------------
1 | data = read.delim(file = "data/14-barplot_BerlinMarathon2022.tsv", header = FALSE)
2 |
3 | data$secs = apply(X = data, MARGIN = 1, FUN = function(x){
4 | sapply(strsplit(x = x, split = ":"), function(x) {
5 | as.numeric(x[1]) * 3600 + as.numeric(x[2]) * 60 + as.numeric(x[3])
6 | })
7 | })
8 | data$mins = data$secs / 60
9 | data$cut = cut(x = data$mins, breaks = seq(90, 480, 1))
10 | hcol = adjustcolor(col = '#d35400', alpha.f = 0.4)
11 |
12 | par(mar = c(3, 2, 3, 1), family = "mono")
13 | plot.new()
14 | plot.window(xlim = c(0, 390), ylim = range(table(data$cut)))
15 | abline(v = seq(0, 390, 30), col = "#ecf0f1")
16 | points(table(data$cut), type = 'h', col = hcol)
17 | #axis(side = 1, at = seq(0, 390, 30), labels = seq(90, 480, 30)/60, las = 2, col.axis = "#34495e", tick = FALSE, )
18 | text(
19 | x = seq(0, 390, 30),
20 | y = -50,
21 | labels = c(
22 | "1:30",
23 | "2:00",
24 | "2:30",
25 | "3:00",
26 | "3:30",
27 | "4:00",
28 | "4:30",
29 | "5:00",
30 | "5:30",
31 | "6:00",
32 | "6:30",
33 | "7:00",
34 | "7:30",
35 | "8:00"
36 | ),
37 | srt = -45,
38 | xpd = TRUE,
39 | cex = 0.8, col = "#2c3e50"
40 | )
41 |
42 | kipchoge_slot_idx = which(names(table(data$cut)) == "(121,122]")
43 | assefa_slot_idx = which(names(table(data$cut)) == "(135,136]")
44 |
45 | median_time = median(data$secs) #245.7 i.e: 04:05:42
46 | median_time_idx = which(names(table(data$cut)) == "(245,246]")
47 |
48 | rect(xleft = kipchoge_slot_idx, ybottom = 0, xright = kipchoge_slot_idx, ytop = 100, border = "#34495e", lwd = 1.2)
49 | text(x = kipchoge_slot_idx, y = 90, labels = "KIPCHOGE\n2:01:09", cex = 0.7, pos = 3, font = 2)
50 |
51 | rect(xleft = assefa_slot_idx, ybottom = 0, xright = assefa_slot_idx, ytop = 200, border = "#95a5a6", lwd = 1.2)
52 | text(x = assefa_slot_idx, y = 190, labels = "ASSEFA\n2:15:37", cex = 0.7, pos = 3, font = 2)
53 |
54 | rect(xleft = median_time_idx, ybottom = 0, xright = median_time_idx, ytop = 90, border = "#34495e", lwd = 1.2)
55 | text(x = median_time_idx, y = 90, labels = "MEDIAN\n04:05:42", cex = 0.7, pos = 3, font = 2)
56 |
57 | mtext(text = "TIME [H:MM]", side = 1, line = 2)
58 | mtext(text = "NUMBER OF ATHLETES", side = 2, line = 0.5)
59 |
60 | title(main = "BMW BERLIN-MARATHON 2022: FINISH TIMES", col.main = "#2c3e50")
61 |
--------------------------------------------------------------------------------
/code/15-pieanimate_browserWars.R:
--------------------------------------------------------------------------------
1 | data = read.delim(file = "data/15-pieanimate_browserWars_compileData.tsv", header = TRUE)
2 | data$Total = round(data$Total, 2)
3 | data$browser = gsub(pattern = "Other", replacement = "others", x = data$browser)
4 |
5 | #Order by months
6 | data = lapply(split(data, data$year), function(x){
7 | x[order(factor(x$month, levels = month.name)),]
8 | })
9 | data = do.call(what = rbind, data)
10 | data$month = as.character(data$month)
11 |
12 | browsercols = c("#16a085", "#2980b9", "#f39c12", "#8e44ad", "#e74c3c", "gray") #hcl.colors(n = 6, palette = "Dark2")
13 | names(browsercols) = c("chrome", "explorer", "firefox", "opera", "safari", "others")
14 |
15 | #pie() with an added argument labcol
16 | pie2 = function (x, labels = names(x), edges = 200, radius = 0.8, clockwise = FALSE,
17 | init.angle = if (clockwise) 90 else 0, density = NULL, angle = 45,
18 | col = NULL, border = NULL, lty = NULL, main = NULL, labcol = "black", ...)
19 | {
20 | if (!is.numeric(x) || any(is.na(x) | x < 0))
21 | stop("'x' values must be positive.")
22 | if (is.null(labels))
23 | labels <- as.character(seq_along(x))
24 | else labels <- as.graphicsAnnot(labels)
25 | x <- c(0, cumsum(x)/sum(x))
26 | dx <- diff(x)
27 | nx <- length(dx)
28 | plot.new()
29 | pin <- par("pin")
30 | xlim <- ylim <- c(-1, 1)
31 | if (pin[1L] > pin[2L])
32 | xlim <- (pin[1L]/pin[2L]) * xlim
33 | else ylim <- (pin[2L]/pin[1L]) * ylim
34 | dev.hold()
35 | on.exit(dev.flush())
36 | plot.window(xlim, ylim, "", asp = 1)
37 | if (is.null(col))
38 | col <- if (is.null(density))
39 | c("white", "lightblue", "mistyrose", "lightcyan",
40 | "lavender", "cornsilk")
41 | else par("fg")
42 | if (!is.null(col))
43 | col <- rep_len(col, nx)
44 | if (!is.null(border))
45 | border <- rep_len(border, nx)
46 | if (!is.null(lty))
47 | lty <- rep_len(lty, nx)
48 | angle <- rep(angle, nx)
49 | if (!is.null(density))
50 | density <- rep_len(density, nx)
51 | twopi <- if (clockwise)
52 | -2 * pi
53 | else 2 * pi
54 | t2xy <- function(t) {
55 | t2p <- twopi * t + init.angle * pi/180
56 | list(x = radius * cos(t2p), y = radius * sin(t2p))
57 | }
58 | for (i in 1L:nx) {
59 | n <- max(2, floor(edges * dx[i]))
60 | P <- t2xy(seq.int(x[i], x[i + 1], length.out = n))
61 | polygon(c(P$x, 0), c(P$y, 0), density = density[i], angle = angle[i],
62 | border = border[i], col = col[i], lty = lty[i])
63 | P <- t2xy(mean(x[i + 0:1]))
64 | lab <- as.character(labels[i])
65 | if (!is.na(lab) && nzchar(lab)) {
66 | lines(c(1, 1.05) * P$x, c(1, 1.05) * P$y)
67 | text(1.1 * P$x, 1.1 * P$y, labels[i], xpd = TRUE,
68 | adj = ifelse(P$x < 0, 1, 0), col = labcol[i], ...)
69 | }
70 | }
71 | title(main = main, ...)
72 | invisible(NULL)
73 | }
74 |
75 | dataspl = split(data, data$date_obs)
76 |
77 | pngs = lapply(dataspl, function(x){
78 | fname = tempfile(fileext = '.png')
79 | png(filename = fname, res = 110)
80 | par(mar = c(2, 4, 3, 4), family = "mono") #bg = "#ecf0f1"
81 | pie2(
82 | x = x$Total,
83 | labcol = rep("#2c3e50", nrow(x)), #browsercols[x$browser],
84 | col = browsercols[x$browser],
85 | radius = 1,
86 | labels = paste0(x$browser, "\n[", x$Total, "%]"),
87 | xpd = TRUE,
88 | outer = TRUE, cex = 1, border = browsercols[x$browser], font = 2
89 | )
90 | points(x = 0, y = 0, pch = 19, cex = 18, col = "white", lwd = 0)
91 | text(x = 0, y = -.1, label = x$year[1], adj = 0.5, cex = 2, col = "#c0392b", font = 2)
92 | text(x = 0, y = .1, label = x$month[1], adj = 0.5, cex = 1.2, col = "#e74c3c", font = 2)
93 |
94 | title(main = "WEB BROWSERS MARKET SHARE\n2002-2022", adj = 0.5, cex.main = 1.5, line = 0, col.main = "#2c3e50")
95 | dev.off()
96 | fname
97 | })
98 |
99 | pngs = unlist(pngs, use.names = FALSE)
100 | cmd = paste0("convert -loop 0 -delay 15 ", paste(pngs, collapse = ' '), " pianimate.gif")
101 | sys.log = system(command = cmd, intern = TRUE)
102 |
--------------------------------------------------------------------------------
/code/15-pieanimate_browserWars_compileData.R:
--------------------------------------------------------------------------------
1 | browsers = c("opera", "safari", "explorer", "firefox", "chrome")
2 |
3 | browsers_data = lapply(browsers, function(browser){
4 | browser_url = paste0("https://www.w3schools.com/browsers/browsers_", browser, ".asp")
5 | data = rvest::html_table(rvest::read_html(x = browser_url))
6 | data = lapply(data, data.table::setDT)
7 | names(data) = unlist(lapply(data, function(x) colnames(x)[1]))
8 | data = lapply(data, function(x) {colnames(x)[1] = "month"; x})
9 | data = data.table::rbindlist(l = data, use.names = TRUE, fill = TRUE, idcol = "year")
10 | #data = data[,.(year, month, Total)] |> data.table::dcast(formula = month ~ year, value.var = "Total", fill = 0)
11 | data[,.(year, month, Total)]
12 | })
13 |
14 | names(browsers_data) = browsers
15 | browsers_data = data.table::rbindlist(l = browsers_data, use.names = TRUE, fill = TRUE, idcol = "browser")
16 | #browsers_data$month = factor(browsers_data$month, levels = month.name)
17 |
18 | browsers_data_fixed = lapply(split(browsers_data, browsers_data$year), function(yearly){
19 | yearly = lapply(split(yearly, yearly$month), function(monthly){
20 | if(nrow(monthly) > 0){
21 | if(sum(monthly$Total) < 100){
22 | unknown_brwsr = data.table::data.table(
23 | browser = "Other",
24 | year = monthly$year[1],
25 | month = as.character(monthly$month[1]),
26 | Total = 100 - sum(monthly$Total)
27 | )
28 | monthly = data.table::rbindlist(l = list(monthly, unknown_brwsr), use.names = TRUE, fill = TRUE)
29 | }
30 | }
31 | monthly
32 | })
33 | data.table::rbindlist(l = yearly, use.names = TRUE, fill = TRUE)
34 | })
35 | browsers_data = data.table::rbindlist(l = browsers_data_fixed, use.names = TRUE, fill = TRUE)
36 | browsers_data[, date_obs := paste0(
37 | browsers_data$year,
38 | "-",
39 | factor(
40 | x = browsers_data$month,
41 | levels = month.name,
42 | labels = 1:12
43 | )
44 | )]
45 |
46 | data.table::fwrite(x = browsers_data, file = "data/15-pieanimate_browserWars_compileData.tsv", sep = "\t")
47 |
--------------------------------------------------------------------------------
/code/16-global_brands.R:
--------------------------------------------------------------------------------
1 | x = read.csv(file = "data/16-global_brands.csv")
2 | single_entries = names(which(table(x$name) == 1))
3 | x = x[!x$name %in% single_entries,]
4 |
5 |
6 | mod_data = lapply(split(x, x$name), function(d){
7 | brand = unique(d$name)
8 | category = unique(d$category)
9 | d_brand = lapply(1:(nrow(d)-1), function(idx){
10 | val_idx = d[idx, "value"]
11 | val_idx_next = d[idx+1, "value"]
12 |
13 | date_idx = d[idx, "date"]
14 | date_idx_next = d[idx+1, "date"]
15 |
16 | seq_date = seq.Date(from = as.Date(date_idx), to = as.Date(date_idx_next), by = 'month')
17 |
18 | data.frame(date = seq_date, value = round(seq(from = val_idx, to = val_idx_next, length.out = length(seq_date))))
19 | })
20 |
21 | d_brand = do.call(what = "rbind", d_brand)
22 | d_brand$brand = brand
23 | d_brand$category = category
24 | d_brand
25 | })
26 |
27 | colpal = c("#f39c12", "#f1c40f", "#3498db", "#ecf0f1", "#95a5a6", "#2c3e50",
28 | "#9b59b6", "#e74c3c", "#bdc3c7", "#e67e22", "#c0392b", "#27ae60",
29 | "#d35400", "#7f8c8d", "#16a085", "#8e44ad", "#1abc9c", "#34495e",
30 | "#2980b9", "#2ecc71", "#9AECDB", "#F8EFBA")
31 |
32 | mod_data = do.call(what = "rbind", mod_data)
33 | mod_data$date = as.Date(as.character(mod_data$date))
34 | names(colpal) = names(table(mod_data$category))
35 |
36 |
37 | fnames = lapply(split(mod_data, mod_data$date), function(pd){
38 | pd = pd[!duplicated(pd$brand),]
39 | fname = NA
40 | if(nrow(pd) >= 12){
41 | pd = pd[order(pd$value, decreasing = T),][1:12,]
42 |
43 | pd$value = ifelse(test = is.na(pd$value), yes = 0, no = pd$value)
44 |
45 | fname = tempfile(pattern = "gb", fileext = ".png")
46 | png(filename = fname, width = 750, height = 655, bg = "white", res = 120)
47 | par(mar = c(0, 6, 0, 0))
48 |
49 | plot(NA, xlim = c(0, max(pd$value)), ylim = c(0, 13), frame.plot = FALSE, axes = FALSE, xlab =NA, ylab = NA)
50 | #main rect
51 | rect(xleft = 0, ybottom = seq(0.1, 11.1, by = 1), ytop = seq(0.9, 11.9, by = 1), xright = rev(pd$value), col = "#fdcb6e", border = "#fdcb6e")
52 | #add value to the end of rect
53 | text(x = rev(pd$value), y = seq(0.45, 11.45, by = 1), labels = rev(pd$value), adj = 1, cex = 0.6, col = "#636e72")
54 | #Add category to the beginning
55 | text(x = 0, y = seq(0.45, 11.45, by = 1), labels = rev(pd$category), adj = 0, cex = 0.6, col = "#636e72")
56 | #add brand name as row names
57 | text(x = -0.5, y = seq(0.45, 11.45, by = 1), labels = rev(pd$brand), adj = 1.1, xpd = TRUE, cex = 0.9, col = "#34495e")
58 | #add top y axis labs
59 | text(x = pretty(c(0, pd$value)), y = 12, labels = pretty(c(0, pd$value)), pos = 3, cex = 0.5)
60 | rect(xleft = pretty(c(0, pd$value)), ybottom = 0, xright = pretty(c(0, pd$value)), ytop = 12, col = "maroon", border = "white")
61 | #add year in progress
62 | legend(x = "bottomright", legend = unique(substr(pd$date, 1, 4)), col = "#2c3e50", bty = "n", text.font = 2, cex = 1.5)
63 | dev.off()
64 |
65 | }
66 | fname
67 | })
68 |
69 | pngs = unlist(fnames, use.names = FALSE)
70 | cmd = paste0("convert -loop 0 -delay 8 ", paste(pngs, collapse = ' '), " globalbrands.gif")
71 | sys.log = system(command = cmd, intern = TRUE)
72 |
--------------------------------------------------------------------------------
/code/17-time-spent-with-relationships-by-age-us.R:
--------------------------------------------------------------------------------
1 | data = read.delim("data/17-time-spent-with-relationships-by-age-us.csv", sep = ",")
2 | colnames(data) = c("Entity", "Code", "Year", "alone", "frinds", "children", "parents", "partner", "coworkers")
3 |
4 | cols = hcl.colors(n = 6, palette = "Dark 3")
5 |
6 | par(mar = c(2, 2, 4, 3))
7 | plot(NA, xlim = c(15, 85), ylim = c(0, 8.4), xlab = NA, ylab = NA, axes = FALSE)
8 | grid()
9 | for(i in 4:ncol(data)){
10 | points(x = data$Year, y = data[,i]/60, type = "l", col = cols[i-3])
11 | points(x = data$Year, y = data[,i]/60, col = cols[i-3], cex = 0.3, pch = 19)
12 | text(x = 86, y = data[nrow(data),i]/60, labels = colnames(data)[i], pos = 4, xpd = TRUE, cex = 0.6)
13 | }
14 |
15 | ttl = "Who Americans Spend Their Time With, by Age"
16 | subttl = "\nAverage time spent with others is measured in minutes per day,and shown by \nthe age of the respondent.This is based on averages from surveys \nbetween 2009 and 2019."
17 |
18 | title(main = ttl, adj = 0, cex.main = 1, line = 3, col.main = "#2c3e50", family = "serif")
19 | title(main = subttl, adj = 0, cex.main = 0.7, line = 0.9, font.main = 1, col.main = "#7f8c8d", family = "serif")
20 |
21 | mtext(text = axTicks(side = 1), side = 1, at = axTicks(side = 1), line = 0.2, col = "#636e72", family = "mono")
22 | mtext(text = "Age in years", side = 1, line = 0.8, las = 1, at = 70, adj = 0, cex = 0.6, col= "#3c6382")
23 |
24 | mtext(text = axTicks(side = 2), side = 2, at = axTicks(side = 2), line = 0, las = 2, col = "#636e72", family = "mono")
25 | mtext(text = "Time spent in hours", side = 2, line = 0.8, las = 3, at = 6, adj = 0, cex = 0.6, col= "#3c6382")
26 |
--------------------------------------------------------------------------------
/code/18-cleanEnergy_manufacturer.R:
--------------------------------------------------------------------------------
1 | lo_mat = matrix(data = c(1, 1, 2, 2, 3, 4), ncol = 2, byrow = TRUE)
2 | lo = layout(mat = lo_mat, widths = c(4, 0.6), heights = c(1, 0.8, 4))
3 |
4 | title1 = "WHERE ARE THE CLEAN-ENERGY TECHNOLOGIES"
5 | title2 = "M A N U F A C T U R E D?"
6 | title3 = "As the market for low-emission solutions expands, China dominates the production of
7 | clean energy technologies and their components."
8 |
9 | par(mar = c(0, 0, 0, 0), bg = "#2d3436", col = "white")
10 | plot(NA, xlim = c(0, 1), ylim = c(0.1, 1), axes = FALSE)
11 | text(x = 0.5, y = 0.9, label = title1, font = 2, cex = 1.2)
12 | text(x = 0.5, y = 0.7, label = title2, font = 2, cex = 1.4)
13 | text(x = 0.5, y = 0.3, label = title3, xpd = TRUE, cex = 1.1)
14 |
15 | par(mar = c(0, 0, 0, 0), bg = "#2d3436", col = "white")
16 | plot(NA, xlim = c(0, 1), ylim = c(0.1, 0.6), axes = FALSE)
17 | country_cols = c("#c0392b", "#e67e22", "#16a085", "#3498db", "#95a5a6")
18 | names(country_cols) = c("China", "AsiaPacific", "Europe", "NorthAmerica", "Other")
19 |
20 | legend(x = 0, y = 0.5, legend = names(country_cols),
21 | col = country_cols, pch = 15, ncol = 5, cex = 1,
22 | border = NA, xpd = TRUE, box.col = "white", pt.cex = 1.8)
23 |
24 | data = read.delim("data/18-cleanEnergy_manufacturer.tsv")
25 | data$cat = paste(data$source, data$element, sep = "_")
26 | n_cat = rev(table(data$cat)[unique(data$cat)])
27 |
28 | y_bottoms = seq(0.1, 16.1, 1)
29 | y_tops = seq(0.9, 16.9, 1)
30 |
31 |
32 | par(mar = c(2, 4, 0.5, 0), bg = "#2d3436", col = "white")
33 | plot(NA, xlim = c(0, 100), ylim = c(0, length(n_cat)), xlab = NA, ylab = NA, axes = FALSE)
34 |
35 | for(i in seq_len(length(n_cat))){
36 | d = data[data$cat == names(n_cat)[i],]
37 | d_cumsum = cumsum(d$pct)
38 | x_right = cumsum(d$pct)
39 | x_left = c(0, d_cumsum[1:length(d_cumsum) - 1])
40 | rect(
41 | xleft = x_left,
42 | ybottom = y_bottoms[i],
43 | xright = x_right,
44 | ytop = y_tops[i],
45 | col = country_cols[d$Country], border = "#34495e"
46 | )
47 | text(x = 0, y = y_bottoms[i]+0.25, label = unique(d$element), cex = 0.7, pos = 2, xpd = NA)
48 | }
49 |
50 | at_lines = c()
51 | for(s in unique(data$source)){
52 | at_lines = c(at_lines, length(unique(data[data$source == s, "element"])))
53 | }
54 |
55 | rect(xleft = -100, ybottom = cumsum(rev(at_lines))-0.03, xright = 100, ytop = cumsum(rev(at_lines)), border = NA, col = "white", xpd = TRUE)
56 | rect(xleft = 0, ybottom = 0, xright = 0.1, ytop = 17, border = NA, col = "white", lwd = 2)
57 | rect(xleft = -100, ybottom = 0, xright = 100, ytop = 0+0.03, border = NA, col = "white", lwd = 2, xpd = NA)
58 |
59 | abline(v = 65, lty = 2)
60 | text(x = 65, y = 17.5, label = "China's avergae: 65%", col = country_cols["China"], xpd = NA, cex = 0.7, adj = -0.1)
61 | text(x = 50, y = 18.5, label = "Shares of manufacturing capacity by region, 2021", col = "white", xpd = NA, cex = 0.8, adj = 0.5, font = 2)
62 | text(x = 0, y = 17.5, label = "Component", col = "white", xpd = NA, cex = 0.8, adj = 0.1, font = 4, pos = 2)
63 | text(x = 105, y = 17.5, label = "Technology", col = "white", xpd = NA, cex = 0.8, adj = 0.1, font = 4, pos = 4)
64 | axis(side = 1, at = seq(0, 100, 20), line = 0, col = "white", col.ticks = "white", col.axis = "white")
65 |
66 | par(mar = c(2, 0, 0.5, 0), bg = "#2d3436", col = "white")
67 | plot(NA, xlim = c(0, 1), ylim = c(0, length(n_cat)), xlab = NA, ylab = NA, axes = FALSE)
68 |
69 | lbs = c("Electrolyzers", "Heat Pumps", "Fuel cell\nTrucks", "EV", "Solar",
70 | "Onshore\nWind", "Offshore\nWind")
71 | text(x = 0, y = c(0.25, 1.5, 3, 6, 9.5, 12.5, 15.5), labels = lbs, adj = 1, xpd = NA, cex = 0.7, pos = 4, font = 2)
72 | rect(xleft = -200, ybottom = cumsum(rev(at_lines))-0.03, xright = 100, ytop = cumsum(rev(at_lines)), border = NA, col = "white", xpd = TRUE)
73 |
--------------------------------------------------------------------------------
/code/19-barcodechart_USagegroup.R:
--------------------------------------------------------------------------------
1 | data = read.csv(file = 'data/19-barcodechart_USagegroup.csv')
2 | rownames(data) = data$name
3 | data$name = NULL
4 | data = apply(data, 1, function(x) x/sum(x))
5 |
6 | par(mar = c(2.4, 4, 2, 1), col = '#2c3e50', family = "serif")
7 |
8 | plot(NA, ylim = c(0, nrow(data)+0.5), xlim = c(0, 0.2), axes = FALSE, xlab = NA, ylab = NA)
9 | abline(v = seq(0, 0.3, 0.05), col = 'gray70', lwd = 0.2)
10 | abline(h = 1:nrow(data), col = 'gray80', lwd = 0.2, lty = 2)
11 | lapply(1:nrow(data), function(idx){
12 | d = data[idx,]
13 | points(x = d, y = rep(idx, length(d)), pch = '|')
14 | })
15 | axiscol = grDevices::adjustcolor(col = '#2c3e50', alpha.f = 0.9)
16 | axis(side = 2, at = 1:nrow(data), labels = c('<10', '10-19', '20-29', '30-39', '40-49', '50-59', '60-69', '70-79', '>80'), las = 2, tick = FALSE, col.axis = axiscol, cex.axis = 0.7)
17 | axis(side = 1, at = seq(0, 0.3, 0.05), labels = seq(0, 0.3, 0.05) * 100, tick = FALSE, line = -1, col.axis = axiscol, cex.axis = 0.7)
18 | mtext(text = 'Population (%)', side = 1, line = 1, adj = 1, cex = 0.6)
19 | mtext(text = 'Age (years)', side = 2, line = 3, adj = 0, cex = 0.6, las = 2, at = nrow(data)+1.2, padj = 3)
20 |
21 | title(main = "Percentage of each age class in every state of USA", cex.main = 0.85, adj = 0, col.main = "#2c3e50")
22 |
--------------------------------------------------------------------------------
/code/README.md:
--------------------------------------------------------------------------------
1 | # Code
2 |
3 | Save command-line scripts and shared R code here.
4 |
--------------------------------------------------------------------------------
/data/01-barplot_BechdelTest.csv:
--------------------------------------------------------------------------------
1 | Decade,3 of 3 test criteria passed,2 of 3,1 of 3,0 of 3
2 | 1920s,21.0,21.0,13.6,44.4
3 | 1930s,48.7,21.3,19.3,10.7
4 | 1940s,48.1,16.2,21.0,14.8
5 | 1950s,48.4,14.3,22.9,14.3
6 | 1960s,44.5,10.9,25.5,19.0
7 | 1970s,47.3,11.2,30.0,11.5
8 | 1980s,54.3,11.1,22.8,11.8
9 | 1990s,58.3,9.6,24.3,7.8
10 | 2000s,60.9,8.7,22.4,8.0
11 | 2010s,63.6,8.9,20.1,7.4
--------------------------------------------------------------------------------
/data/02-splitbarplot_PopGermany.csv:
--------------------------------------------------------------------------------
1 | age span,male,female
2 | 95-100,34000,138000
3 | 90-95,213000,490000
4 | 85-90,619000,1053000
5 | 80-85,1413000,1987000
6 | 75-80,1560000,1933000
7 | 70-75,1881000,2139000
8 | 65-70,2361000,2579000
9 | 60-65,2884000,2959000
10 | 55-60,3422000,3399000
11 | 50-55,3259000,3200000
12 | 45-50,2517000,2471000
13 | 40-45,2522000,2454000
14 | 35-40,2666000,2543000
15 | 30-35,2819000,2635000
16 | 23-30,2443000,2290000
17 | 20-25,2211000,2090000
18 | 15-20,1903000,1801000
19 | 10-15,1816000,1724000
20 | 5-10,1810000,1719000
21 | <5,1816000,1725000
--------------------------------------------------------------------------------
/data/03-dotplot_OldestCountry.csv:
--------------------------------------------------------------------------------
1 | Country,Combined,Male,Female
2 | 1st: Monaco ,53.1,51.7,54.5
3 | 2nd: Japan ,47.3,46,48.7
4 | 3rd: Germany ,47.1,46,48.2
5 | Italy,45.5,44.4,46.5
6 | Greece,44.5,43.5,45.6
7 | Hong Kong,44.4,43.5,45
8 | Austria,44,42.8,45.1
9 | Spain,42.7,41.5,43.9
10 | Netherlands,42.6,41.5,43.6
11 | Finland,42.5,40.9,44.3
12 | South Korea,41.8,40.2,43.4
13 | France,41.4,39.6,43.1
14 | Poland,40.7,39,42.4
15 | United Kingdom,40.5,39.3,41.7
16 | Russia,39.6,36.6,42.5
17 | Norway,39.2,38.4,40
18 | United States,38.1,36.8,39.4
19 | New Zealand,37.9,37.1,38.8
20 | China,37.4,36.5,38.4
--------------------------------------------------------------------------------
/data/04-arrowplot_WomenInParliment.csv:
--------------------------------------------------------------------------------
1 | Country Name,2000,2020,group
2 | Japan,7.29,9.89,East Asia & Pacific
3 | Australia,22.97,30.46,East Asia & Pacific
4 | China,21.78,24.94,East Asia & Pacific
5 | Indonesia,8,20.35,East Asia & Pacific
6 | Malaysia,10.36,14.41,East Asia & Pacific
7 | New Zealand,30.83,40.83,East Asia & Pacific
8 | Finland,36.5,46,Europe & Central Asia
9 | France,10.92,39.51,Europe & Central Asia
10 | Germany,30.94,31.17,Europe & Central Asia
11 | Netherlands,36,33.33,Europe & Central Asia
12 | Norway,36.36,41.42,Europe & Central Asia
13 | Spain,28.29,44,Europe & Central Asia
14 | Switzerland,23,41.5,Europe & Central Asia
15 | United Kingdom,18.36,33.85,Europe & Central Asia
16 | Turkey,4.18,17.32,Europe & Central Asia
--------------------------------------------------------------------------------
/data/05-linechart_COVIDrXiv.csv:
--------------------------------------------------------------------------------
1 | year,LandAverageTemperature,lower,upper
2 | 1753,15.092,13.163,17.021
3 | 1754,14.681,12.28,17.082
4 | 1755,14.397,12.461,16.333
5 | 1756,13.906,11.714,16.098
6 | 1757,17.61,13.288,21.932
7 | 1758,13.847,10.239,17.455
8 | 1759,12.526,9.876,15.176
9 | 1760,12.887,10.32,15.454
10 | 1761,19.021,16.325,21.717
11 | 1762,14.72,12.754,16.686
12 | 1763,16.391,14.637,18.145
13 | 1764,12.507,9.251,15.763
14 | 1765,13.953,11.578,16.328
15 | 1766,13.555,11.214,15.896
16 | 1767,13.361,10.802,15.92
17 | 1768,13.875,11.323,16.427
18 | 1769,14.461,10.792,18.13
19 | 1770,11.621,8.963,14.279
20 | 1771,13.828,12.393,15.263
21 | 1772,14.581,13.172,15.99
22 | 1773,14.484,13.399,15.569
23 | 1774,16.521,12.715,20.327
24 | 1775,14.719,13.661,15.777
25 | 1776,14.108,12.805,15.411
26 | 1777,12.743,11.665,13.821
27 | 1778,15.037,12.821,17.253
28 | 1779,13.659,11.801,15.517
29 | 1780,16.183,14.883,17.483
30 | 1781,14.285,12.589,15.981
31 | 1782,13.925,10.965,16.885
32 | 1783,13.069,11.726,14.412
33 | 1784,14.947,13.144,16.75
34 | 1785,14.468,12.253,16.683
35 | 1786,15.294,12.983,17.605
36 | 1787,13.451,11.026,15.876
37 | 1788,16.468,13.552,19.384
38 | 1789,15.462,13.54,17.384
39 | 1790,13.812,12.155,15.469
40 | 1791,13.612,12.553,14.671
41 | 1792,14.212,12.85,15.574
42 | 1793,14.336,11.472,17.2
43 | 1794,12.874,11.591,14.157
44 | 1795,14.295,12.13,16.46
45 | 1796,14.314,13.35,15.278
46 | 1797,14.107,12.494,15.72
47 | 1798,14.951,13.67,16.232
48 | 1799,14.869,13.561,16.177
49 | 1800,13.763,12.83,14.696
50 | 1801,14.676,13.116,16.236
51 | 1802,14.628,13.473,15.783
52 | 1803,15.106,14.162,16.05
53 | 1804,15.774,14.456,17.092
54 | 1805,14.702,13.551,15.853
55 | 1806,13.923,12.418,15.428
56 | 1807,14.138,12.533,15.743
57 | 1808,14.491,12.815,16.167
58 | 1809,12.656,11.175,14.137
59 | 1810,12.551,10.535,14.567
60 | 1811,11.956,10.573,13.339
61 | 1812,14.355,12.892,15.818
62 | 1813,14.521,13.644,15.398
63 | 1814,12.532,10.68,14.384
64 | 1815,14.394,12.023,16.765
65 | 1816,12.267,10.729,13.805
66 | 1817,12.072,11.015,13.129
67 | 1818,13.51,11.61,15.41
68 | 1819,13.038,11.868,14.208
69 | 1820,13.311,11.936,14.686
70 | 1821,13.039,11.75,14.328
71 | 1822,14.212,13.144,15.28
72 | 1823,14.197,13.171,15.223
73 | 1824,14.83,12.672,16.988
74 | 1825,14.007,12.844,15.17
75 | 1826,14.482,13.348,15.616
76 | 1827,14.684,14.022,15.346
77 | 1828,14.384,12.631,16.137
78 | 1829,14.225,13.313,15.137
79 | 1830,14.942,13.103,16.781
80 | 1831,13.58,12.408,14.752
81 | 1832,13.727,11.66,15.794
82 | 1833,13.803,12.383,15.223
83 | 1834,14.197,13.011,15.383
84 | 1835,13.129,12.436,13.822
85 | 1836,13.646,13.046,14.246
86 | 1837,13.526,11.908,15.144
87 | 1838,14.367,13.483,15.251
88 | 1839,14.411,13.469,15.353
89 | 1840,14.714,14.252,15.176
90 | 1841,14.552,13.815,15.289
91 | 1842,13.584,13.075,14.093
92 | 1843,13.991,13.446,14.536
93 | 1844,13.921,13.316,14.526
94 | 1845,14.319,13.594,15.044
95 | 1846,14.923,14.186,15.66
96 | 1847,14.25,13.65,14.85
97 | 1848,14.466,13.853,15.079
98 | 1849,14.458,13.78,15.136
99 | 1850,14.492,13.878,15.106
100 | 1851,14.531,13.925,15.137
101 | 1852,14.512,13.734,15.29
102 | 1853,14.645,13.986,15.304
103 | 1854,14.692,13.842,15.542
104 | 1855,13.926,13.291,14.561
105 | 1856,14.019,13.597,14.441
106 | 1857,13.953,13.161,14.745
107 | 1858,13.677,12.923,14.431
108 | 1859,13.827,13.26,14.394
109 | 1860,14.203,13.732,14.674
110 | 1861,13.967,13.49,14.444
111 | 1862,13.928,13.483,14.373
112 | 1863,13.765,13.123,14.407
113 | 1864,14.162,13.592,14.732
114 | 1865,14.22,13.678,14.762
115 | 1866,14.602,14.162,15.042
116 | 1867,14.223,13.822,14.624
117 | 1868,14.514,14.083,14.945
118 | 1869,14.337,13.888,14.786
119 | 1870,14.599,14.199,14.999
120 | 1871,14.29,13.908,14.672
121 | 1872,14.285,13.807,14.763
122 | 1873,14.287,13.88,14.694
123 | 1874,14.122,13.703,14.541
124 | 1875,14.144,13.747,14.541
125 | 1876,14.319,13.95,14.688
126 | 1877,14.642,14.24,15.044
127 | 1878,14.742,14.364,15.12
128 | 1879,14.238,13.859,14.617
129 | 1880,14.141,13.745,14.537
130 | 1881,14.203,13.859,14.547
131 | 1882,13.747,13.413,14.081
132 | 1883,14.011,13.656,14.366
133 | 1884,13.622,13.247,13.997
134 | 1885,13.972,13.603,14.341
135 | 1886,14.226,13.872,14.58
136 | 1887,14.021,13.678,14.364
137 | 1888,14.242,13.921,14.563
138 | 1889,14.225,13.898,14.552
139 | 1890,14.034,13.68,14.388
140 | 1891,13.93,13.592,14.268
141 | 1892,13.89,13.562,14.218
142 | 1893,14.318,13.979,14.657
143 | 1894,14.004,13.693,14.315
144 | 1895,14.053,13.741,14.365
145 | 1896,14.233,13.905,14.561
146 | 1897,14.31,13.94,14.68
147 | 1898,14.138,13.771,14.505
148 | 1899,14.159,13.826,14.492
149 | 1900,14.171,13.826,14.516
150 | 1901,14.339,13.989,14.689
151 | 1902,14.231,13.875,14.587
152 | 1903,13.992,13.626,14.358
153 | 1904,13.836,13.54,14.132
154 | 1905,14.077,13.77,14.384
155 | 1906,14.122,13.799,14.445
156 | 1907,13.769,13.462,14.076
157 | 1908,14.197,13.894,14.5
158 | 1909,14.06,13.761,14.359
159 | 1910,14.279,13.957,14.601
160 | 1911,14.082,13.79,14.374
161 | 1912,13.723,13.43,14.016
162 | 1913,14.137,13.839,14.435
163 | 1914,14.298,13.991,14.605
164 | 1915,14.443,14.148,14.738
165 | 1916,14.052,13.751,14.353
166 | 1917,14.259,13.963,14.555
167 | 1918,14.002,13.701,14.303
168 | 1919,14.274,13.975,14.573
169 | 1920,14.245,13.94,14.55
170 | 1921,14.436,14.134,14.738
171 | 1922,14.278,13.972,14.584
172 | 1923,13.984,13.684,14.284
173 | 1924,14.304,13.997,14.611
174 | 1925,14.066,13.766,14.366
175 | 1926,14.168,13.881,14.455
176 | 1927,14.323,14.021,14.625
177 | 1928,14.31,14.013,14.607
178 | 1929,13.957,13.643,14.271
179 | 1930,14.465,14.164,14.766
180 | 1931,14.576,14.274,14.878
181 | 1932,14.372,14.066,14.678
182 | 1933,14.236,13.936,14.536
183 | 1934,14.343,14.047,14.639
184 | 1935,14.331,14.039,14.623
185 | 1936,14.629,14.33,14.928
186 | 1937,14.375,14.077,14.673
187 | 1938,14.482,14.187,14.777
188 | 1939,14.395,14.104,14.686
189 | 1940,14.571,14.276,14.866
190 | 1941,14.694,14.403,14.985
191 | 1942,14.242,13.949,14.535
192 | 1943,14.46,14.16,14.76
193 | 1944,14.468,14.184,14.752
194 | 1945,14.213,13.926,14.5
195 | 1946,14.409,14.12,14.698
196 | 1947,14.349,14.065,14.633
197 | 1948,14.445,14.169,14.721
198 | 1949,14.199,13.929,14.469
199 | 1950,14.14,13.901,14.379
200 | 1951,14.324,14.084,14.564
201 | 1952,14.549,14.273,14.825
202 | 1953,14.392,14.108,14.676
203 | 1954,14.241,14.013,14.469
204 | 1955,14.242,14.065,14.419
205 | 1956,14.18,14.087,14.273
206 | 1957,14.129,13.925,14.333
207 | 1958,14.438,14.239,14.637
208 | 1959,14.449,14.318,14.58
209 | 1960,14.198,14.126,14.27
210 | 1961,14.288,14.209,14.367
211 | 1962,14.205,14.131,14.279
212 | 1963,14.506,14.408,14.604
213 | 1964,14.301,14.176,14.426
214 | 1965,14.078,13.939,14.217
215 | 1966,14.569,14.457,14.681
216 | 1967,14.331,14.162,14.5
217 | 1968,14.026,13.937,14.115
218 | 1969,14.218,14.109,14.327
219 | 1970,14.395,14.295,14.495
220 | 1971,14.139,14.033,14.245
221 | 1972,14.231,14.113,14.349
222 | 1973,14.435,14.306,14.564
223 | 1974,14.288,14.229,14.347
224 | 1975,14.351,14.255,14.447
225 | 1976,14.155,13.975,14.335
226 | 1977,14.631,14.52,14.742
227 | 1978,14.364,14.206,14.522
228 | 1979,14.114,14.06,14.168
229 | 1980,14.742,14.598,14.886
230 | 1981,14.738,14.656,14.82
231 | 1982,14.545,14.472,14.618
232 | 1983,14.408,14.338,14.478
233 | 1984,14.429,14.292,14.566
234 | 1985,13.973,13.886,14.06
235 | 1986,14.293,14.233,14.353
236 | 1987,14.89,14.746,15.034
237 | 1988,14.798,14.73,14.866
238 | 1989,14.612,14.528,14.696
239 | 1990,14.784,14.644,14.924
240 | 1991,14.987,14.932,15.042
241 | 1992,14.139,14.058,14.22
242 | 1993,14.595,14.485,14.705
243 | 1994,14.658,14.582,14.734
244 | 1995,15.116,15.037,15.195
245 | 1996,14.827,14.73,14.924
246 | 1997,14.565,14.433,14.697
247 | 1998,15.34,15.266,15.414
248 | 1999,14.853,14.752,14.954
249 | 2000,14.848,14.728,14.968
250 | 2001,15.161,15.06,15.262
251 | 2002,15.354,15.277,15.431
252 | 2003,14.983,14.799,15.167
253 | 2004,14.312,14.197,14.427
254 | 2005,15.19,15.096,15.284
255 | 2006,15.042,14.926,15.158
256 | 2007,15.23,15.115,15.345
257 | 2008,15.174,15.102,15.246
258 | 2009,15.231,15.083,15.379
259 | 2010,15.213,15.123,15.303
260 | 2011,15.482,15.369,15.595
261 | 2012,15.076,15,15.152
262 | 2013,15.003,14.877,15.129
263 | 2014,14.873,14.795,14.951
264 | 2015,15.051,14.965,15.137
--------------------------------------------------------------------------------
/data/05-linechart_CigConsumption.csv:
--------------------------------------------------------------------------------
1 | country,Austria,Canada,France,Germany,Japan,Netherlands,New Zealand,Spain,Sweden,Switzerland,United Kingdom,United States
2 | 1875,null,null,0.1,null,null,null,null,null,null,null,null,null
3 | 1880,null,null,0.1,null,null,null,null,null,null,null,null,null
4 | 1885,null,null,0.1,null,null,null,null,null,null,null,null,null
5 | 1890,null,null,0.1,null,null,null,null,null,null,null,null,null
6 | 1895,null,null,0.1,null,null,null,null,null,null,null,null,null
7 | 1900,null,null,0.2,null,null,null,null,null,null,null,null,0.1
8 | 1901,null,null,0.2,null,null,null,null,null,null,null,null,0.1
9 | 1902,null,null,0.2,null,null,null,null,null,null,null,null,0.1
10 | 1903,null,null,0.2,null,null,null,null,null,null,null,null,0.1
11 | 1904,null,null,0.2,null,null,null,null,null,null,null,null,0.2
12 | 1905,null,null,0.2,null,null,null,null,null,null,null,1.1,0.2
13 | 1906,null,null,0.2,0.2,null,null,null,null,null,null,1.1,0.2
14 | 1907,null,null,0.3,0.3,null,null,null,null,null,null,1.2,0.2
15 | 1908,null,null,0.3,0.4,null,null,null,null,null,null,1.3,0.2
16 | 1909,null,null,0.3,0.4,null,null,null,null,null,null,1.3,0.3
17 | 1910,null,null,0.3,0.5,null,null,null,null,null,null,1.4,0.4
18 | 1911,null,null,null,0.6,null,null,null,null,null,null,1.6,0.4
19 | 1912,null,null,null,0.7,null,null,null,null,null,null,1.7,0.5
20 | 1913,null,null,0.4,0.7,null,null,null,null,null,null,1.8,0.6
21 | 1914,null,null,null,null,null,null,null,null,null,null,1.9,0.6
22 | 1915,null,null,null,null,null,null,null,null,null,null,2.2,0.7
23 | 1916,null,null,null,null,null,null,null,null,null,null,2.1,1
24 | 1917,null,null,null,null,null,null,null,null,null,null,2.2,1.4
25 | 1918,null,null,null,null,null,null,null,null,null,null,2.3,1.7
26 | 1919,null,null,null,null,null,null,null,null,null,null,3.1,1.8
27 | 1920,null,1,null,null,1.6,null,1.6,1,1,null,3,1.7
28 | 1921,null,1.1,null,null,1.7,null,1.2,1,0.9,null,2.8,1.9
29 | 1922,null,0.9,null,null,1.8,null,1.3,1.1,0.7,null,2.7,1.9
30 | 1923,2.5,1,0.7,null,2,1.1,1.5,1.2,0.7,null,2.7,2.3
31 | 1924,2.9,1.1,0.9,null,2.1,1.4,1.6,1.1,0.7,null,2.8,2.5
32 | 1925,2.9,1.2,null,1.7,2,1.1,1.8,1,0.7,null,3,2.7
33 | 1926,3.1,1.4,null,1.6,2,1.3,1.8,0.9,0.7,null,3,3
34 | 1927,3.3,1.6,null,1.8,2.1,1.4,1.8,1,0.8,null,3.2,3.8
35 | 1928,3.4,1.8,null,1.8,2.2,1.4,1.8,1.2,0.9,null,3.5,4
36 | 1929,3.5,2.1,null,1.8,2.2,1.6,1.9,1.3,1,null,3.7,4.3
37 | 1930,3.5,2,null,1.6,2,1.8,1.6,1.4,1.1,null,3.9,4.3
38 | 1931,3.3,1.7,null,1.5,2,1.7,1.2,1.3,1.2,null,3.9,4.3
39 | 1932,3.4,1.4,1.6,2.3,2.1,1.8,1,1.4,1.2,null,4.1,4.4
40 | 1933,3,1.6,1.6,2.3,2.2,1.9,1,1.3,1.1,null,4.2,4.8
41 | 1934,2.9,1.8,1.5,2.5,2.3,1.8,1.1,1.2,1.1,1.5,4.4,5.3
42 | 1935,2.9,1.9,1.4,2.5,2.4,1.9,1.4,1.1,1,1.5,4.7,5.7
43 | 1936,2.9,2,1.5,2.6,2.4,1.8,1.7,null,1,1.5,4.9,6
44 | 1937,2.8,2.3,1.6,2.8,2.5,1.9,1.9,null,1,1.5,5.2,6
45 | 1938,3.2,2.4,1.6,3.2,2.5,2.1,2.1,null,1,1.9,5.5,6.1
46 | 1939,4,2.4,1.8,null,2.9,2.3,2.1,null,1.1,1.9,5.7,6.3
47 | 1940,5,2.6,1.7,null,3.1,null,1.9,1,1.1,1.9,5.6,6.5
48 | 1941,5.8,2.9,1.4,null,3.1,null,2,1.1,1.2,2.3,6.2,6.8
49 | 1942,5.3,3.3,1,null,3.2,null,2.3,1.1,1.2,2.2,6.5,7.4
50 | 1943,5.3,3.6,0.9,null,3.2,null,2.3,1.3,1.2,2.6,6.5,7.8
51 | 1944,4.2,3.7,0.8,null,2.7,null,2.5,1.3,1.2,2.8,6.5,7
52 | 1945,1.6,4.5,1.2,null,0.9,null,2.6,1.3,1.3,3.2,7.2,8.1
53 | 1946,1.1,4.7,1.6,null,0.9,1.4,3.4,1.4,1.6,3.5,7.6,8.9
54 | 1947,1.6,4.7,2.1,null,1,2.2,4.3,1.5,1.9,4,6.7,9.1
55 | 1948,2,4.8,2.3,null,1.9,2.1,3.4,1.3,2,3.9,6.5,9.3
56 | 1949,2.5,4.9,2.4,null,2.8,2.4,3.4,1.4,2,4,6.4,9.3
57 | 1950,3,4.9,4.4,2.7,3.3,3.1,7.6,1.2,2.5,4.1,6.5,9.3
58 | 1951,3.5,4.4,4.4,3.1,3.7,3.2,8,1.3,2.5,4.3,6.8,9.8
59 | 1952,3.7,4.9,4.5,3.1,3.9,3.6,7.7,1.5,2.9,4.7,7,10
60 | 1953,3.8,5.7,4.4,3.3,4.3,3.8,7.7,1.7,2.9,4.6,7,9.7
61 | 1954,3.3,5.8,4.5,3.5,4.5,4.2,8,1.8,2.9,4.6,7.3,9.2
62 | 1955,3.7,8.6,4.6,3.8,4.5,4.3,8.2,2,3,4.8,7.5,9.4
63 | 1956,4.1,8.8,4.8,4,4.4,4.7,7.7,1.9,3.1,5.1,7.5,9.4
64 | 1957,4.3,9.3,5.1,4.4,4.5,4.8,8.1,3.8,3.2,5.3,7.7,9.7
65 | 1958,4.6,9.7,5.2,4.4,4.6,4.6,7.5,4.3,3.2,5.8,7.8,10.2
66 | 1959,4.7,9.9,4.9,4.7,4.8,4.6,7.3,4.2,3.3,5.9,8,10.5
67 | 1960,4.8,9.8,5,5.1,5.1,7.3,8.2,4.2,3.5,6.6,8.3,10.7
68 | 1961,4.7,10.2,5,5.4,5.6,7.5,8.2,4.5,3.7,7.2,8.4,11
69 | 1962,4.9,10.5,5.1,5.3,5.7,7.4,8.1,4.6,3.8,7.6,8.1,10.9
70 | 1963,5.1,10.5,5.1,5.4,5.9,7.6,8.4,4.7,3.9,7.6,8.3,11
71 | 1964,5.2,10.4,5.1,5.7,6.2,6.9,8.2,4.9,3.9,7.2,8.3,10.6
72 | 1965,5.4,10.7,5.3,6,6.4,8.4,8.1,5.3,4,8.5,8.1,10.7
73 | 1966,5.8,10.8,5.3,6.2,6.7,6.8,8.6,5.4,4.2,6.7,8.4,10.7
74 | 1967,5.9,10.6,5.6,6.1,7,7.7,8.3,5.6,4.2,7.7,8.5,10.7
75 | 1968,6,10.3,5.6,6.5,7,8.4,8.2,5.7,4.5,8.1,8.6,10.4
76 | 1969,6.2,10.1,5.6,6.8,7.5,7.7,8.2,5.7,4.7,9,8.8,10
77 | 1970,6.5,10.5,5.8,7.1,7.8,8.3,8.3,5.8,4.7,9.5,9,10.2
78 | 1971,6.6,10.5,5.9,7.5,8.2,8.4,8.2,5.9,4.6,10.3,8.5,9.9
79 | 1972,6.5,10.6,5.7,7.5,8.6,9.2,8.3,6.1,5.1,10.7,9.1,10.2
80 | 1973,7,10.8,5.9,7.3,8.9,9.7,8.3,6.4,4.2,9.3,9.5,10.7
81 | 1974,6.9,10.7,6.1,7.5,9.5,9.9,8.3,6.8,4.9,9.2,9.4,10.6
82 | 1975,6.6,10.6,6.3,7.3,9.5,9.9,8.6,6.4,5.1,8.6,9.2,10.4
83 | 1976,6.8,10.9,6.1,7.6,9.4,9.6,8.4,6.7,5.2,8.5,9,10.3
84 | 1977,6.9,10.7,6.3,7,9.7,10.8,8.5,7,4.9,8.8,8.7,10.2
85 | 1978,7,10.4,6.1,7.3,9.6,9.7,8.3,6.5,5.1,8.5,8.6,10
86 | 1979,7.2,10.5,6.2,7.4,9.6,10.4,7.9,7.2,5.1,8.2,8.4,9.9
87 | 1980,7.1,10.3,6.1,7.5,9.4,9.2,7.7,7,5.1,8.3,8.1,9.9
88 | 1981,7.1,10.3,6,7.6,9.5,8.8,7.8,6.4,4.9,8.4,7.5,9.9
89 | 1982,7,10.4,6,6.9,9.4,9.1,7.6,6.7,5.1,8.4,6.9,9.7
90 | 1983,7.2,9.7,6.1,7.2,9.3,9.8,7.5,6.7,4.9,8.5,6.9,9.1
91 | 1984,7,9.6,6.1,7.1,9.2,8,7.5,6.9,5,8.4,6.6,9
92 | 1985,7,9.1,6.4,7.2,9,8,6.7,7.3,4.9,8.1,6.5,8.8
93 | 1986,7,8.7,6.2,7,8.8,7.9,6.2,7.1,4.8,8.1,6.3,8.6
94 | 1987,6.8,8.3,6.1,7,8.7,7.6,6.2,7.2,4.7,8,6.3,8.3
95 | 1988,6.4,8,6,6.9,8.6,7.5,6.3,6.9,4.7,7.9,6.2,8.1
96 | 1989,6.2,7.3,6,7,8.6,7.5,5.1,7,4.6,7.9,6.3,7.6
97 | 1990,6.3,7,5.9,null,8.8,7.6,5.3,7.2,4.5,7.8,6.5,7.4
98 | 1991,6.4,6.3,6,6.6,8.9,8,4.7,7.3,4.5,7.8,6.2,7.1
99 | 1992,6.1,6.4,5.9,6.1,8.8,7.3,4.2,6.9,4.6,8.2,5.9,6.9
100 | 1993,5.8,6,5.7,5.9,8.8,6.6,4.2,6.3,3.8,7.6,5.7,6.6
101 | 1994,5.9,6.6,5.6,6,8.8,6.8,4,6.8,3.6,7.4,5.6,6.6
102 | 1995,5.6,5.9,5.4,6,8.8,6.8,4,6.3,3.4,7.3,5.7,6.5
103 | 1996,5.4,6.2,5.4,6,9.1,6.2,4.2,6,3.5,7.2,5.7,6.4
104 | 1997,5.7,5.8,5.2,6.1,8.5,6.5,4.1,6.6,2.6,7,5.6,6.3
105 | 1998,6.4,5.8,5.2,6.1,8.7,6.6,4,7.3,2.5,7.1,5.6,6
106 | 1999,6.6,5.7,5.2,6.4,8.5,6.4,3.8,7.1,2.8,6.8,5.8,5.7
107 | 2000,6.5,5.3,5.1,6.1,8.3,6.4,3.9,7.1,2.9,6.7,5.7,5.4
108 | 2001,6.3,5,5.2,6.2,8.1,6,3.4,7.2,2.9,6.5,5.6,5.3
109 | 2002,4.8,4.4,4.9,6.3,7.9,6.3,3.5,7.1,3,6.5,5.5,5.1
110 | 2003,4.6,4.2,4.3,5.9,7.6,6.2,3.1,7.1,2.9,6.6,5.4,4.9
111 | 2004,4.6,4,3.5,5.2,7.4,5.6,3.1,7.2,2.8,6.4,5.2,4.7
112 | 2005,null,3.7,3.5,5,7.2,5.1,3.3,7,2.7,5.7,5.1,4.5
113 | 2006,null,3.4,3.5,4.5,6.8,5.1,3.2,6.8,2.6,5.8,4.9,4.5
114 | 2007,null,3.2,3.5,4.4,6.5,5.3,3.2,6.6,null,5.4,4.7,4.2
115 | 2008,null,3,3.4,4.2,6.2,5.1,3.3,6.7,null,5.7,4.5,4
116 | 2009,null,3.1,3.5,4.3,5.9,4.6,3.1,6.1,null,5.6,4.3,3.7
117 | 2010,null,3.5,3.5,4.2,5.3,4.5,null,5.5,null,null,4,3.6
118 | 2011,null,null,null,4.4,4.9,1.5,null,null,null,null,3.5,3.5
119 | 2012,null,null,null,4.2,4.9,1.5,null,null,null,null,3.4,3.5
120 | 2013,null,null,null,4.1,4.9,null,null,null,null,null,3.2,3.3
121 | 2014,null,null,null,4.1,4.5,null,null,null,null,null,3,3.2
122 | 2015,null,null,null,4.2,4.6,null,null,null,null,null,null,null
--------------------------------------------------------------------------------
/data/06-scatterplot_RichGDP.csv:
--------------------------------------------------------------------------------
1 | country,regions,GDP per capita,Life expectancy,population
2 | Georgia,Asia,10100,74.3,3910000
3 | Ecuador,South America,10200,78.3,16900000
4 | Namibia,Africa,10500,65.7,2590000
5 | Egypt,Africa,10800,72.6,99400000
6 | St. Lucia,North America,10900,76.6,180000
7 | Malawi,Africa,1130,61,19200000
8 | St. Vincent and the Grenadines,North America,11400,72,110000
9 | Tunisia,Africa,11600,78,11700000
10 | Indonesia,Asia,11700,72,267000000
11 | Mozambique,Africa,1200,61.1,30500000
12 | Mongolia,Asia,12100,68.7,3120000
13 | Bosnia and Herzegovina,Europe,12100,77.9,3500000
14 | Qatar,Asia,121000,80.7,2690000
15 | South Africa,Africa,12300,63.5,57400000
16 | Sri Lanka,Asia,12400,77.8,21000000
17 | Albania,Europe,12400,78,2930000
18 | Eritrea,Africa,1250,64.6,5190000
19 | Peru,South America,12700,80.2,32600000
20 | Guinea,Africa,1280,61.9,13100000
21 | Maldives,Asia,13000,80.1,444000
22 | Suriname,South America,13200,71.6,568000
23 | Lebanon,Asia,13400,80.5,6090000
24 | Grenada,North America,13500,71.9,108000
25 | Algeria,Africa,13700,77.9,42000000
26 | Colombia,South America,13700,78.6,49500000
27 | North Korea,Asia,1390,71.1,25600000
28 | "Macedonia, FYR",Europe,14000,75.2,2090000
29 | Venezuela,South America,14200,75.9,32400000
30 | Brazil,South America,14300,75.7,211000000
31 | Comoros,Africa,1440,68,832000
32 | Madagascar,Africa,1460,63.4,26300000
33 | Togo,Africa,1480,63.1,7990000
34 | Serbia,Europe,14800,76.2,8760000
35 | Sierra Leone,Africa,1490,60,7720000
36 | Timor-Leste,Australia,1490,73.3,1320000
37 | Dominican Republic,North America,15200,76.1,10900000
38 | Guinea-Bissau,Africa,1550,59.7,1910000
39 | Gambia,Africa,1570,67.8,2160000
40 | Iraq,Asia,15900,68,39300000
41 | Barbados,North America,16000,76.8,286000
42 | China,Asia,16000,76.9,1420000000
43 | Costa Rica,North America,16200,81.4,4950000
44 | Botswana,Africa,16500,66.9,2330000
45 | Azerbaijan,Asia,16600,72.3,9920000
46 | Montenegro,Europe,16600,77.3,629000
47 | Thailand,Asia,16900,78.2,69200000
48 | Burkina Faso,Africa,1710,61.6,19800000
49 | Haiti,North America,1710,64.5,11100000
50 | Belarus,Europe,17200,73.8,9450000
51 | Mexico,North America,17300,76.8,131000000
52 | Iran,Asia,17400,76.5,82000000
53 | Gabon,Africa,17500,67.3,2070000
54 | Turkmenistan,Asia,17900,70.5,5850000
55 | Ethiopia,Africa,1800,66.4,108000000
56 | South Sudan,Africa,1820,60.7,12900000
57 | Uganda,Africa,1820,62.9,44300000
58 | Libya,Africa,18300,75.5,6470000
59 | Chad,Africa,1860,60.5,15400000
60 | Afghanistan,Asia,1870,58.7,36400000
61 | Kiribati,Australia,1890,62.2,118000
62 | Bulgaria,Europe,18900,75.3,7040000
63 | Argentina,South America,18900,77,44700000
64 | Rwanda,Africa,1930,68.3,12500000
65 | Zimbabwe,Africa,1950,60.2,16900000
66 | Cuba,North America,20000,79.3,11500000
67 | Mali,Africa,2020,62.9,19100000
68 | Equatorial Guinea,Africa,20500,66.1,1310000
69 | Mauritius,Africa,21000,74.9,1270000
70 | Antigua and Barbuda,North America,21000,77.6,103000
71 | Solomon Islands,Australia,2110,63.6,623000
72 | Uruguay,South America,21300,77.6,3470000
73 | Benin,Africa,2170,65,11500000
74 | Bahamas,North America,21900,74.1,399000
75 | Croatia,Europe,22600,77.7,4160000
76 | Romania,Europe,23400,75.5,19600000
77 | Panama,North America,23400,79.4,4160000
78 | Chile,South America,23400,80.7,18200000
79 | Nepal,Asia,2420,71.5,29600000
80 | Kazakhstan,Asia,24200,72,18400000
81 | Yemen,Asia,2430,67.1,28900000
82 | Russia,Europe,24800,71.1,144000000
83 | Turkey,Asia,24900,79.6,81900000
84 | Latvia,Europe,25500,75.1,1930000
85 | Greece,Europe,25500,81.3,11100000
86 | Senegal,Africa,2570,66.8,16300000
87 | Hungary,Europe,26900,75.9,9690000
88 | Palestine,Asia,2700,72.2,5050000
89 | Malaysia,Asia,27200,75.9,32000000
90 | Seychelles,Africa,27500,74.2,95200
91 | Poland,Europe,27700,78.2,38100000
92 | Tanzania,Africa,2780,65.5,59100000
93 | Portugal,Europe,27900,81.3,10300000
94 | Papua New Guinea,Australia,2800,61.1,8420000
95 | Vanuatu,Australia,2900,64.3,282000
96 | Syria,Asia,2900,69.8,18300000
97 | Tajikistan,Asia,2920,72.2,9110000
98 | Estonia,Europe,29500,77.7,1310000
99 | Lesotho,Africa,2960,51.1,2260000
100 | Trinidad and Tobago,North America,30300,73.4,1370000
101 | Lithuania,Europe,30400,75.3,2880000
102 | Slovenia,Europe,30900,81.1,2080000
103 | Kenya,Africa,3110,67.3,51000000
104 | Slovak Republic,Europe,31400,77.2,5450000
105 | Cameroon,Africa,3170,61.2,24700000
106 | Sao Tome and Principe,Africa,3190,70.9,209000
107 | Cyprus,Europe,32200,80.8,1190000
108 | Czech Republic,Europe,32300,79.4,10600000
109 | Israel,Asia,33400,82.4,8450000
110 | "Micronesia, Fed. Sts.",Australia,3410,65.8,106000
111 | Spain,Europe,34700,83.2,46400000
112 | Kyrgyz Republic,Asia,3490,71.5,6130000
113 | Italy,Europe,35200,82.6,59300000
114 | Djibouti,Africa,3540,67.1,971000
115 | New Zealand,Australia,36400,81.8,4750000
116 | Mauritania,Africa,3670,70.6,4540000
117 | South Korea,Asia,36800,81.3,51200000
118 | Bangladesh,Asia,3720,73.4,166000000
119 | Cote d'Ivoire,Africa,3760,61.2,24900000
120 | Malta,Europe,37900,81.8,432000
121 | Cambodia,Asia,3830,69.3,16200000
122 | Zambia,Africa,3870,59.5,17600000
123 | Oman,Asia,38900,78.1,4830000
124 | France,Europe,39000,82.6,65200000
125 | Japan,Asia,39100,84.2,127000000
126 | United Kingdom,Europe,40100,81.2,66600000
127 | Finland,Europe,40300,82.1,5540000
128 | Belgium,Europe,42800,81.2,11500000
129 | Ghana,Africa,4380,66.6,29500000
130 | Canada,North America,43800,82.2,37000000
131 | Bahrain,Asia,44300,77.2,1570000
132 | Sudan,Africa,4440,68.8,41500000
133 | Austria,Europe,44600,81.8,8750000
134 | Germany,Europe,45200,81.3,82300000
135 | Australia,Australia,45800,82.9,24800000
136 | Honduras,North America,4590,73.1,9420000
137 | Denmark,Europe,46600,81.1,5750000
138 | Iceland,Europe,47400,82.6,338000
139 | Sweden,Europe,47500,82.4,9980000
140 | Netherlands,Europe,48500,81.9,17100000
141 | Saudi Arabia,Asia,50100,77.6,33600000
142 | Pakistan,Asia,5220,68,201000000
143 | Moldova,Europe,5330,72.4,4040000
144 | Nicaragua,North America,5470,78.7,6280000
145 | United States,North America,54900,79.1,327000000
146 | Tonga,Australia,5500,70.7,109000
147 | Nigeria,Africa,5570,66.1,196000000
148 | "Congo, Rep.",Africa,5620,63.9,5400000
149 | Switzerland,Europe,57100,83.5,8540000
150 | Angola,Africa,5850,65.2,30800000
151 | Samoa,Australia,5950,72.4,198000
152 | Myanmar,Asia,6100,70.3,53900000
153 | Somalia,Africa,629,58,15200000
154 | Lao,Asia,6310,67.9,6960000
155 | Cape Verde,Africa,6420,74.1,553000
156 | Norway,Europe,64800,82.4,5350000
157 | Vietnam,Asia,6550,74.9,96500000
158 | Ireland,Europe,65600,81.5,4800000
159 | Uzbekistan,Asia,6690,70.5,32400000
160 | United Arab Emirates,Asia,68200,76.9,9540000
161 | Kuwait,Asia,68400,80,4200000
162 | Central African Republic,Africa,689,51.6,4740000
163 | India,Asia,6890,69.1,1350000000
164 | Burundi,Africa,691,61.1,11200000
165 | Bolivia,South America,6980,74,11200000
166 | "Congo, Dem. Rep.",Africa,751,62.4,84000000
167 | Guatemala,North America,7530,73.2,17200000
168 | Swaziland,Africa,7600,58.6,1390000
169 | Brunei,Asia,76900,77.4,434000
170 | Belize,North America,7710,72.5,382000
171 | Morocco,Africa,7720,75.5,36200000
172 | Guyana,South America,7740,68.2,782000
173 | Philippines,Asia,7960,70.5,107000000
174 | Liberia,Africa,801,65.4,4850000
175 | El Salvador,North America,8290,75.8,6410000
176 | Ukraine,Europe,8330,72.3,44000000
177 | Singapore,Asia,83900,84,5790000
178 | Jordan,Asia,8450,76.7,9900000
179 | Jamaica,North America,8520,75.2,2900000
180 | Armenia,Asia,8660,76,2930000
181 | Paraguay,South America,9280,74.8,6900000
182 | Fiji,Australia,9420,65.8,912000
183 | Niger,Africa,949,62.5,22300000
184 | Luxembourg,Europe,99000,82.4,590000
185 | Bhutan,Asia,9930,74.8,817000
--------------------------------------------------------------------------------
/data/07-areachart_USmigration.csv:
--------------------------------------------------------------------------------
1 | Region and country of last residence 1,Austria-Hungary,Germany,Ireland,Italy,Russia,Norway and Sweden,United Kingdom,Rest of Europe,China,India,Philippines,Rest of Asia,Canada and Newfoundland,Mexico,Caribbean,Rest of America,Central America,South America,Africa,Oceania,Not Specified
2 | 1825,0,5753,51617,430,86,91,26336,15305,3,9,0,22,2297,3835,3061,463,57,405,19,2,19173
3 | 1835,0,124726,170672,2225,280,1149,74350,49451,8,38,0,9,11875,7187,11792,1057,94,957,66,1,83495
4 | 1845,0,385434,656145,1476,520,12389,218572,94887,32,33,0,56,34285,3069,11803,1370,297,1062,67,3,7196
5 | 1855,0,976072,1029486,8643,423,22202,445322,140469,35933,42,0,105,64171,3446,12447,4137,512,3569,104,110,71442
6 | 1865,3375,723734,427419,9853,1667,82937,532956,98448,54028,50,0,330,117975,1957,8809,1686,70,1536,458,107,15472
7 | 1875,60127,751769,422264,46296,34977,178823,578447,179347,133139,166,4,762,323974,5133,14592,2190,202,1109,441,9094,592
8 | 1885,314787,1445181,674061,267660,173081,586441,810900,366573,65797,247,1,5107,492508,2405,27600,7332,359,1954,768,7341,778
9 | 1895,534059,579072,405710,603761,413382,334058,328759,377610,15268,102,19,45915,2668,734,31885,3469,674,1389,432,3279,14112
10 | 1905,2001376,328722,344940,1930475,1501301,426981,469518,569256,19884,3026,605,276926,123067,31188,100960,22667,7341,15253,6326,11677,33493
11 | 1915,1154727,174227,166445,1229916,1106998,192445,371878,588775,20916,3478,0,245342,708715,185334,120860,55630,15692,39938,8867,12339,488
12 | 1925,60891,386634,201644,528133,61604,170329,342762,808343,30648,2076,0,94016,949286,498945,83482,59565,16511,43025,6362,9860,930
13 | 1935,13902,117736,28195,85053,2473,13452,61813,121780,5874,554,457,12407,162703,32709,18052,16855,6840,9990,2120,3240,0
14 | 1945,13677,119403,15701,50509,605,17326,131794,123509,16072,1692,4099,12669,160911,56158,46285,65081,20135,19662,6720,14262,135
15 | 1955,113015,576905,47189,189061,453,44231,195709,238410,8836,1922,17245,107841,353169,273847,115869,178759,40201,78418,13016,11319,12472
16 | 1965,27590,209616,37788,200111,2329,36150,220213,399646,14060,18638,70660,255205,433128,441824,427843,371390,98569,250754,23780,23659,119
17 | 1975,20387,77142,11461,150031,28132,10298,133218,395658,17627,148018,337726,903155,179267,621218,708643,394508,120376,273529,71405,39983,326
18 | 1985,20437,85752,22210,55562,33311,13941,153644,284837,170897,231649,502056,1486754,156313,1009586,789343,739262,339376,399803,141987,41432,305406
19 | 1995,27529,92207,65384,75992,433427,17825,156182,480673,342058,352528,534338,1630975,194788,2757418,1004114,1180822,610189,570596,346410,56800,25928
20 | 2005,33929,122373,15642,28329,167152,19382,171979,790823,591711,590464,545463,1743197,236349,1704166,1053357,1447657,591130,856508,759734,65793,211930
--------------------------------------------------------------------------------
/data/08-donutplot_TopWealth.csv:
--------------------------------------------------------------------------------
1 | next 40%,Canada,China,Norway,Germany,India,United States
2 | bottom 50%,5.6,11,1.1,0.1,4.2,1.1
3 | next 40%,46.7,40.6,49.4,42.4,33.7,23.9
4 | top 10%,47.7,48.4,49.5,57.5,62.1,75
--------------------------------------------------------------------------------
/data/10-donut_BloodGroup.tsv:
--------------------------------------------------------------------------------
1 | Region O+ A+ B+ AB+ O- A- B- AB-
2 | Asia 36.8 27.5 25 7.2 1.3 1.1 0.8 0.3
3 | Americas 54.5 27.8 36.8 2.1 4.3 2.5 0.7 0.2
4 | Africa 46.7 26.7 16.8 3.7 3.2 1.7 0.9 0.3
5 | Europe 33.3 35 11.9 4.8 5.9 6.2 2.1 0.9
6 | Oceania 42.3 33.4 10.8 3.2 5 3.6 1.2 0.6
7 | Middle East 41.8 27.7 16.6 4.3 4.4 3.1 1.5 0.5
8 | Caribbean 46.3 27.6 15.7 3 3.6 2.3 1.1 0.3
9 |
--------------------------------------------------------------------------------
/data/10-donut_BloodGroupCountry.tsv:
--------------------------------------------------------------------------------
1 | Country O+ A+ B+ AB+ O- A- B- AB- Pop
2 | China 47.7 27.8 18.9 5 0.3 0.2 0.1 0 1.4B
3 | India 32.5 21.8 32.1 7.7 2 1.4 2 0.5 1.3B
4 | USA 37 36 9 3 7 6 2 1 332.6M
5 | Indonesia 36.8 25.9 28.9 8 0.2 0.1 0.2 0 267M
6 | Pakistan 26.6 21.6 34.4 9.5 2.2 1.7 3.6 0.5 233.5M
7 | Ecuador 75 14 7.1 0.5 2.4 0.7 0.3 0 16.9M
8 | Armeina 29 46 12 6 2 4 1 0.4 3M
9 | Thailand 40.8 16.9 36.8 5 0.2 0.1 0.2 0 68.9M
10 | North Korea 27.2 31.3 30.2 11.3 0.1 0.1 0.1 0 25.6M
11 | New Yealand 38 32 9 3 9 6 2 1 4.9M
--------------------------------------------------------------------------------
/data/11-bubblechart_furturejobs2030.tsv:
--------------------------------------------------------------------------------
1 | Occupation pct_empl_change num_empl_change median_ann_wage categ
2 | Wind turbine service technicians 68.2 4700 56230 Other
3 | Nurse practitioners 52.2 114900 111680 Health_related
4 | Solar photovoltaic installers 52.1 6100 46470 Other
5 | Statisticians 35.4 14900 92270 Comp_math
6 | Physical therapist assistants 35.4 33200 59770 Health_related
7 | Information security analysts 33.3 47100 103590 Comp_math
8 | Home health and personal care aides 32.6 1129900 27080 Health_related
9 | Medical and health services managers 32.5 139600 104280 Health_related
10 | Data scientists and mathematical science occupations, all other 31.4 19800 98230 Comp_math
11 | Physician assistants 31 40100 115390 Health_related
12 | Epidemiologists 29.6 2300 74560 Health_related
13 | Logisticians 29.5 56400 76270 Other
14 | Speech-language pathologists 28.7 45400 80480 Health_related
15 | Animal trainers 28.5 17200 31520 Other
16 | Computer numerically controlled tool programmers 27.4 7400 57740 Comp_math
17 | Genetic counselors 26.2 600 85700 Health_related
18 | Crematory operators and personal care and service workers, all other 24.8 19900 28420 Other
19 | Operations research analysts 24.6 25600 86200 Comp_math
20 | Actuaries 24.5 6800 111030 Comp_math
21 | Health specialties teachers, post-secondary 24.3 58900 99090 Health_related
22 | Word processors and typists -36 -16300 41050 Office_and_admin
23 | Parking enforcement workers -35 -2800 42070 Other
24 | Nuclear power reactor operators -32.9 -1800 104040 Production
25 | Cutters and trimmers, hand -29.7 -2400 31630 Production
26 | Telephone operators -25.4 -1200 37710 Office_and_admin
27 | Watch and clock repairers -24.9 -700 45290 Other
28 | Door-to-door sales workers, news and street vendors, and related workers -24.1 -13000 29730 Other
29 | Switchboard operators, including answering service -22.7 -13600 31430 Office_and_admin
30 | Data entry keyers -22.5 -35600 34440 Office_and_admin
31 | Shoe machine operators and tenders -21.6 -1100 30630 Production
32 | Legal secretaries and administrative assistants -21 -33600 48980 Office_and_admin
33 | Floral designers -20.1 -8500 29140 Other
34 | Executive secretaries and executive administrative assistants -18.7 -100600 63110 Office_and_admin
35 | Manufactured building and mobile home installers -18.4 -600 35120 Other
36 | Telemarketers -18.3 -21900 27920 Other
37 | Order clerks -18.2 -24400 35590 Office_and_admin
38 | Timing device assemblers and adjusters -17.8 -200 36170 Production
39 | Print binding and finishing workers -17.5 -7300 34260 Production
40 | Prepress technicians and workers -17.1 -4800 41410 Production
41 | Tellers -16.9 -73100 32620 Office_and_admin
42 |
--------------------------------------------------------------------------------
/data/15-GenzUnemnployment.tsv:
--------------------------------------------------------------------------------
1 | Country GenZ Mil
2 | Australia 14.3 5
3 | Austria 10.5 4.7
4 | Belgium 15.3 4.8
5 | Canada 20 7.9
6 | Chile 24.8 9.6
7 | Colombia 27.5 13.9
8 | Czech Republic 8 2.3
9 | Denmark 11.5 4.7
10 | Estonia 17.7 5.9
11 | Finland 21 6
12 | France 20.1 6.8
13 | Germany 6.2 4
14 | Hungary 12.4 3.5
15 | Iceland 11.9 5.5
16 | Ireland 15.2 4.4
17 | Israel 7.9 3.7
18 | Italy 29.1
19 | Japan 4.5 2.6
20 | South Korea 10.5 3.6
21 | Latvia 14.8 7.7
22 | Lithuania 19.5 7.7
23 | Luxembourg 22.4 5.6
24 | Mexico 8 3.8
25 | Netherlands 9.1 2.8
26 | New Zealand 12.4 3.3
27 | Poland 10.9 2.6
28 | Portugal 22.9 5.9
29 | Slovakia 19.3 6
30 | Slovenia 14.2 4.3
31 | Spain 38.3 14
32 | Sweden 23.8 6.4
33 | Switzerland 8.6 4.3
34 | United Kingdom 13.5 3.2
35 | United States 15.1 7.1
36 |
--------------------------------------------------------------------------------
/data/17-time-spent-with-relationships-by-age-us.csv:
--------------------------------------------------------------------------------
1 | Entity,Code,Year,"Time spent alone, by age of respondent (United States)","Time spent with friends, by age of respondent (United States)","Time spent with children, by age of respondent (United States)","Time spent with with parents, siblings and other family, by age of respondent (United States)","Time spent with partner, by age of respondent (United States)","Time spent with coworkers, by age of respondent (United States)"
2 | United States,USA,15,193.30588,109.4145,23.463852,267.12091,0,8.3420067
3 | United States,USA,16,206.37056,110.7418,28.609867,254.3381,0.030690858,23.529137
4 | United States,USA,17,224.17331,120.41887,26.089708,229.81561,1.1228406,43.809685
5 | United States,USA,18,242.69839,137.75107,27.387308,236.35201,5.6972671,81.633575
6 | United States,USA,19,267.79385,129.85716,36.445004,201.2766,19.341291,124.85052
7 | United States,USA,20,277.60379,122.7402,54.630512,173.13503,26.35417,143.9003
8 | United States,USA,21,270.21817,122.40627,69.293869,152.67331,59.897781,154.20972
9 | United States,USA,22,283.56686,100.16862,72.302246,135.8266,55.767094,173.0473
10 | United States,USA,23,270.93015,101.07177,96.935883,125.79333,78.188667,190.10524
11 | United States,USA,24,265.81378,96.786346,99.394424,103.75845,99.44416,206.05486
12 | United States,USA,25,275.12906,77.543015,119.50971,101.02744,121.25083,199.20917
13 | United States,USA,26,281.63202,77.856834,128.59393,87.654915,139.91745,190.09406
14 | United States,USA,27,259.3331,74.140686,153.33383,85.956535,151.88562,211.48781
15 | United States,USA,28,261.13989,62.491688,175.83809,80.147217,168.24556,212.14497
16 | United States,USA,29,253.66589,55.084454,194.49931,81.6101,176.19919,199.11349
17 | United States,USA,30,250.02524,53.478016,199.76436,72.476334,180.02309,215.61365
18 | United States,USA,31,253.16542,50.925926,225.92371,69.526543,203.71202,199.06003
19 | United States,USA,32,255.07323,49.464462,230.71593,61.336475,192.00175,202.76134
20 | United States,USA,33,244.90091,49.731628,256.41312,66.359383,200.02365,186.96373
21 | United States,USA,34,263.59116,42.650288,261.18497,65.723053,199.23759,179.36411
22 | United States,USA,35,262.62488,41.661636,248.93806,62.107143,198.27702,190.68065
23 | United States,USA,36,273.27942,40.120937,256.59799,64.809921,197.55948,178.94667
24 | United States,USA,37,267.09787,43.362503,256.37634,56.446011,204.00514,188.47969
25 | United States,USA,38,258.99704,42.101093,254.45975,54.001514,203.30919,197.09261
26 | United States,USA,39,281.98877,33.611919,266.07874,52.701588,212.07637,172.79756
27 | United States,USA,40,278.25668,36.197014,242.43935,54.638985,201.94627,187.34126
28 | United States,USA,41,292.07227,38.729492,237.29298,55.611694,194.68652,179.37498
29 | United States,USA,42,297.90939,38.695633,222.96886,50.690075,182.25496,189.4864
30 | United States,USA,43,321.74783,39.107994,207.65651,55.288914,181.83145,169.79688
31 | United States,USA,44,312.69861,38.859802,207.01961,54.224209,191.94835,182.13411
32 | United States,USA,45,309.03583,36.090996,199.21028,58.068977,183.99062,182.52716
33 | United States,USA,46,326.78207,37.459354,177.52652,54.798512,186.65195,179.01489
34 | United States,USA,47,338.24756,39.243477,168.4313,60.089104,181.05563,171.43033
35 | United States,USA,48,332.5762,33.357357,157.297,58.556328,197.96497,170.06847
36 | United States,USA,49,339.72601,37.315029,132.68301,58.63641,194.11002,187.72957
37 | United States,USA,50,361.14328,28.917883,132.44537,65.362938,174.92821,168.1844
38 | United States,USA,51,368.59146,35.627602,123.67976,62.211754,187.80592,172.19505
39 | United States,USA,52,380.84085,33.961197,102.66885,65.243996,190.51634,176.08771
40 | United States,USA,53,372.17041,31.585169,102.3604,59.573872,188.71446,168.29805
41 | United States,USA,54,377.70459,34.837147,89.755821,60.021786,182.8898,184.43581
42 | United States,USA,55,384.14532,33.079144,88.129921,60.739655,184.38846,162.92227
43 | United States,USA,56,387.00711,36.820248,78.608688,66.083549,195.93608,154.11407
44 | United States,USA,57,399.18466,31.479084,73.898285,58.831005,185.31619,157.73422
45 | United States,USA,58,409.77731,35.2756,68.309761,65.851311,186.54398,140.36014
46 | United States,USA,59,411.51978,29.068735,70.334312,67.322807,199.87039,140.17371
47 | United States,USA,60,413.32019,35.94643,61.933525,65.528786,204.63687,125.92768
48 | United States,USA,61,414.82727,32.807606,71.07634,60.896008,205.22923,126.77782
49 | United States,USA,62,425.2204,34.453568,57.484367,56.583904,224.05167,96.651878
50 | United States,USA,63,430.51068,36.147518,62.510818,73.459251,232.44521,78.317001
51 | United States,USA,64,449.01306,35.180847,55.407318,63.962303,231.84886,78.246071
52 | United States,USA,65,444.02954,35.90049,57.586105,65.28495,242.53215,62.186493
53 | United States,USA,66,431.98727,40.828274,59.682854,69.281334,255.86,50.919098
54 | United States,USA,67,433.85413,38.98082,62.771469,58.832348,258.14743,44.558029
55 | United States,USA,68,448.22601,41.382526,53.818981,53.716782,260.36365,39.273418
56 | United States,USA,69,443.00061,42.001629,68.845222,61.424671,270.69342,27.190746
57 | United States,USA,70,448.85193,45.80217,52.782196,47.977863,261.86359,26.851473
58 | United States,USA,71,444.47784,44.433987,59.073078,58.145714,266.694,21.892221
59 | United States,USA,72,474.45526,44.234802,46.338203,57.166805,261.05215,20.653986
60 | United States,USA,73,451.40637,36.592476,56.115063,56.550076,276.13379,18.386124
61 | United States,USA,74,458.6745,40.508751,48.986588,66.20977,254.44495,14.613341
62 | United States,USA,75,463.43195,39.079994,48.644051,56.281876,252.93309,16.36656
63 | United States,USA,76,456.49493,41.503906,44.339306,51.955276,266.23712,19.662245
64 | United States,USA,77,454.3125,33.595589,46.719131,67.455605,272.73013,12.47935
65 | United States,USA,78,461.63959,39.297825,42.985035,59.704296,256.41376,3.2494414
66 | United States,USA,79,485.83075,41.975792,38.609028,51.944447,235.3701,4.5325632
67 | United States,USA,80,476.76736,35.589745,45.010258,66.100365,227.04634,5.2152042
68 | United States,USA,85,501.88327,36.37146,45.463383,65.052567,158.42017,3.5733819
--------------------------------------------------------------------------------
/data/18-cleanEnergy_manufacturer.tsv:
--------------------------------------------------------------------------------
1 | Country source element pct
2 | China OffshoreWind Tower 53
3 | AsiaPacific OffshoreWind Tower 6
4 | Europe OffshoreWind Tower 41
5 | China OffshoreWind Nacelle 73
6 | AsiaPacific OffshoreWind Nacelle 1
7 | Europe OffshoreWind Nacelle 26
8 | China OffshoreWind Blade 84
9 | AsiaPacific OffshoreWind Blade 4
10 | Europe OffshoreWind Blade 12
11 | China OnshoreWind Tower 55
12 | AsiaPacific OnshoreWind Tower 12
13 | Europe OnshoreWind Tower 16
14 | NorthAmerica OnshoreWind Tower 11
15 | Other OnshoreWind Tower 6
16 | China OnshoreWind Nacelle 62
17 | AsiaPacific OnshoreWind Nacelle 13
18 | Europe OnshoreWind Nacelle 10
19 | NorthAmerica OnshoreWind Nacelle 8
20 | Other OnshoreWind Nacelle 7
21 | China OnshoreWind Blade 61
22 | AsiaPacific OnshoreWind Blade 6
23 | Europe OnshoreWind Blade 18
24 | NorthAmerica OnshoreWind Blade 10
25 | Other OnshoreWind Blade 5
26 | China Solar Wafers 96
27 | AsiaPacific Solar Wafers 3
28 | Other Solar Wafers 1
29 | China Solar Cells 85
30 | AsiaPacific Solar Cells 13
31 | Europe Solar Cells 2
32 | China Solar Modules 75
33 | AsiaPacific Solar Modules 18
34 | Europe Solar Modules 3
35 | NorthAmerica Solar Modules 2
36 | Other Solar Modules 2
37 | China EV Cathode 68
38 | AsiaPacific EV Cathode 26
39 | Europe EV Cathode 3
40 | Other EV Cathode 3
41 | China EV Anode 86
42 | AsiaPacific EV Anode 12
43 | Europe EV Anode 2
44 | China EV Batteries 75
45 | AsiaPacific EV Batteries 11
46 | Europe EV Batteries 8
47 | Other EV Batteries 6
48 | China EV ElectricCar 54
49 | AsiaPacific EV ElectricCar 10
50 | Europe EV ElectricCar 27
51 | NorthAmerica EV ElectricCar 7
52 | Other EV ElectricCar 2
53 | China FuelCellTrucks Trucks 45
54 | AsiaPacific FuelCellTrucks Trucks 14
55 | Europe FuelCellTrucks Trucks 22
56 | NorthAmerica FuelCellTrucks Trucks 19
57 | China FuelCellTrucks PowerSystem 48
58 | AsiaPacific FuelCellTrucks PowerSystem 39
59 | NorthAmerica FuelCellTrucks PowerSystem 5
60 | Other FuelCellTrucks PowerSystem 8
61 | China HeatPumps HeatPumps 39
62 | AsiaPacific HeatPumps HeatPumps 14
63 | Europe HeatPumps HeatPumps 16
64 | NorthAmerica HeatPumps HeatPumps 29
65 | Other HeatPumps HeatPumps 2
66 | China Electrolyzers Electrolyzers 41
67 | AsiaPacific Electrolyzers Electrolyzers 14
68 | Europe Electrolyzers Electrolyzers 26
69 | NorthAmerica Electrolyzers Electrolyzers 19
70 |
--------------------------------------------------------------------------------
/data/19-barcodechart_USagegroup.csv:
--------------------------------------------------------------------------------
1 | name,<10,10-19,20-29,30-39,40-49,50-59,60-69,70-79,≥80
2 | AL,598478,638789,661666,603013,625599,673864,548376,316598,174781
3 | AK,106741,99926,120674,102008,91539,104569,70473,28422,12503
4 | AZ,892083,912735,939804,857054,833290,834858,737884,466153,254716
5 | AR,392177,397185,399698,372998,370157,395070,329734,197985,113468
6 | CA,5038433,5170341,5809455,5354112,5179258,5042094,3737461,2011678,1311374
7 | CO,690830,697447,780508,766382,705450,725661,563376,274466,155175
8 | CT,399369,481065,462323,424890,496265,546361,400995,217827,159475
9 | DE,112177,117854,127554,114063,117588,133331,110822,65369,35937
10 | DC,74377,62783,136976,121520,80570,74779,56984,31362,19658
11 | FL,2211012,2331102,2597830,2416176,2575576,2762983,2404659,1615547,1019566
12 | GA,1363631,1421557,1418696,1357210,1404698,1337985,998253,528108,269182
13 | HI,176484,163559,204336,187590,176904,188438,164957,85345,66060
14 | ID,236658,239509,218684,209500,194678,205170,179429,97621,54234
15 | IL,1619682,1715984,1789739,1721954,1697069,1773366,1326121,728821,478948
16 | IN,863029,905594,905590,827086,844059,911778,704523,384788,243131
17 | IA,401712,418667,419456,383638,370719,427554,344037,197223,143583
18 | KS,401751,402092,406956,368732,344427,389834,300759,166104,117637
19 | KY,555615,575866,593819,558201,580553,623164,495736,273961,155074
20 | LA,622061,613633,683606,615411,571991,631936,488846,266123,152063
21 | ME,137954,155774,156359,147695,176908,215787,179540,97899,62007
22 | MD,741952,764730,815346,784097,815875,862778,636309,330736,208079
23 | MA,737748,862371,971340,847306,916106,979128,737805,401931,288408
24 | MI,1181424,1324071,1338179,1162186,1283122,1454462,1148131,619722,398303
25 | MN,711604,714399,728222,715583,692201,782655,577313,312906,215985
26 | MS,400288,421329,414195,374724,377165,400164,319443,181195,100689
27 | MO,763948,792935,831725,763002,750989,857534,668878,388086,242554
28 | MT,126020,126294,136346,125004,116502,149800,130977,70528,41920
29 | NE,263518,257610,260646,244236,222479,250911,195705,107650,78504
30 | NV,369362,360263,392834,390261,387272,373757,309651,173499,82273
31 | NH,138762,167495,167554,151409,182703,217950,164287,84791,52552
32 | NJ,1079136,1153625,1139927,1143452,1254602,1307263,946399,523620,367432
33 | NM,276468,282662,289801,260579,244346,280363,239044,135013,74393
34 | NY,2319945,2445591,2894266,2605355,2617327,2755620,2095207,1160055,804091
35 | NC,1250298,1310398,1350242,1268976,1357746,1356117,1095320,609234,342497
36 | ND,99477,91069,124509,94713,80327,98688,73825,41348,32206
37 | OH,1422838,1530264,1535538,1398724,1490959,1677794,1320776,728158,481890
38 | OK,534481,522282,552528,501392,469410,512850,404704,239887,138055
39 | OR,474456,485345,538596,537767,507826,534421,490894,255809,157153
40 | PA,1458931,1608018,1712448,1520409,1645291,1881378,1491536,850897,615069
41 | RI,111377,136885,153674,126503,137892,156127,117653,63359,51021
42 | SC,599591,619144,667523,596491,619792,663408,579856,322073,166727
43 | SD,120366,113383,116748,105499,96288,117012,92824,50398,38540
44 | TN,818404,842873,895337,837313,866343,904272,741045,414939,227483
45 | TX,3983091,3910528,3946447,3770534,3545746,3344930,2431494,1291486,732179
46 | UT,513515,479126,465219,436010,328569,301596,230007,123674,70711
47 | VT,63768,79351,81765,70092,79982,99521,82136,42978,26656
48 | VA,1033629,1065461,1170634,1112111,1134928,1162028,881763,475141,274606
49 | WA,895790,882812,1004428,970613,921205,970407,784208,401094,242589
50 | WV,207017,218547,232027,220494,238218,269346,243108,138134,79201
51 | WI,705648,755224,760961,714479,732280,848672,645015,350772,241747
52 | WY,78217,75535,82898,76912,68464,81018,67484,32819,19682
53 | PR,389428,479749,480184,441842,456009,452503,411924,268783,148963
--------------------------------------------------------------------------------
/data/21-top_gold_mining_stocks.tsv:
--------------------------------------------------------------------------------
1 | Company Performance Market_cap
2 | Newmont 37.8 48.2
3 | Barrick 22.5 39.8
4 | Franco Nevada 21.3 23.6
5 | Agnico Eagle 14.5 17.5
6 | Wheaton 40.3 18.6
7 | Newcrest -14.8 15.9
8 | Kirkland Lake Gold -6.4 10.4
9 | Northern Star 12.2 6.9
10 | AngloGold Ashanti 1.3 9.8
11 | Kinross 54.9 9.2
12 |
--------------------------------------------------------------------------------
/data/22-median_2022_student_debt.tsv:
--------------------------------------------------------------------------------
1 | degree Major Study median_debt
2 | bachelors Behavioral Sciences Social Sciences 42.8
3 | bachelors Religious Education Arts and Humanities 32
4 | bachelors "Culinary Arts and
5 | Related Services" Arts and Humanities 28.6
6 | bachelors Human Services Social Sciences 28.6
7 | bachelors Education Other 28
8 | bachelors "Clinical, Counseling, and
9 | Applied Psychology" Health and Medicine 27.4
10 | bachelors Literature Arts and Humanities 27
11 | bachelors Natural Sciences Sciences 26.9
12 | bachelors Physical Sciences Sciences 26.6
13 | bachelors Music Arts and Humanities 26.6
14 | bachelors Architecture Arts and Humanities 26.5
15 | bachelors "Arts, Entertainment, and
16 | Media Management" Arts and Humanities 26.5
17 | bachelors Visual and Performing Arts Arts and Humanities 26.5
18 | bachelors "Health Professions and
19 | Related Clinical Sciences" Health and Medicine 26
20 | bachelors "Communication, Journalism, and
21 | Related Programs" Other 25.9
22 | bachelors "Drama/ Theater Arts
23 | and Stagecraft" Arts and Humanities 25.8
24 | bachelors Astronomy and Astrophysics Sciences 25.6
25 | bachelors Engineering, General Engineering 25.5
26 | bachelors Multi-/Interdisciplinary Studies Other 25.4
27 | bachelors "Aerospace, Aeronautical,
28 | and Astronautical Engineering" Engineering 25.2
29 | bachelors Biological and Physical Sciences Sciences 25.2
30 | bachelors "Foods, Nutrition, and
31 | Related Services" Health and Medicine 25.2
32 | bachelors Biochemical Engineering Engineering 25.1
33 | bachelors Information Science/Studies Sciences 25.1
34 | bachelors "Film/Video and
35 | Photographic Arts" Arts and Humanities 25
36 | bachelors Social Work Health and Medicine 24.9
37 | bachelors Zoology/Animal Biology Sciences 24.7
38 | bachelors Civil Engineering Engineering 24.6
39 | bachelors "City/Urban, Community,
40 | and Regional Planning" Social Sciences 24.5
41 | bachelors Criminal Justice and Corrections Social Sciences 24.5
42 | bachelors Mechanical Engineering Engineering 24.5
43 | bachelors "Radio, Television, and
44 | Digital Communication" Other 24.4
45 | bachelors "Business Administration, Management,
46 | and Operations" Other 24.4
47 | bachelors "Health and
48 | Physical Education/ Fitness" Health and Medicine 24.2
49 | bachelors Accounting Other 24.1
50 | bachelors Computer & Information Sciences Sciences 24
51 | bachelors "Public Relations, Advertising,
52 | and Applied Communication" Other 23.9
53 | bachelors Chemical Engineering Engineering 23.8
54 | bachelors Biology Sciences 23.7
55 | bachelors Journalism Other 23.4
56 | bachelors Criminology Social Sciences 23.4
57 | bachelors "Liberal Arts and Sciences,
58 | General Studies and Humanities" Social Sciences 23.3
59 | bachelors Botany/Plant Biology Sciences 23.3
60 | bachelors Psychology Social Sciences 23.3
61 | bachelors Public Health Health and Medicine 23.1
62 | bachelors Archeology Social Sciences 23
63 | bachelors "Communication and
64 | Media Studies" Other 22.8
65 | bachelors Social Sciences Social Sciences 22.8
66 | bachelors Chemistry Sciences 22.8
67 | bachelors Hospitality Administration/Management Health and Medicine 22.8
68 | bachelors Physics Sciences 22.8
69 | bachelors History Social Sciences 22.8
70 | bachelors "Registered Nursing, Nursing Administration,
71 | Nursing Research, and Clinical Nursing" Health and Medicine 22.6
72 | bachelors English Language and Literature Arts and Humanities 22.5
73 | bachelors Sociology Social Sciences 22.3
74 | bachelors Computer Science Sciences 22.3
75 | bachelors Marine Sciences Sciences 22.2
76 | bachelors Political Science and Government Social Sciences 22
77 | bachelors "Science, Technology, and
78 | Society" Sciences 21.8
79 | bachelors Mathematics Sciences 21.8
80 | bachelors Geography and Cartography Social Sciences 21.7
81 | bachelors Anthropology Social Sciences 21.7
82 | bachelors Animal Sciences Sciences 21.6
83 | bachelors Environmental Design Social Sciences 21.2
84 | bachelors Agricultural Sciences 20.8
85 | bachelors Economics Other 20.7
86 | bachelors Statistics Other 20.6
87 | bachelors Public Administration Social Sciences 20.6
88 | bachelors Philosophy Social Sciences 20.6
89 | bachelors International/Global Studies Other 19.9
90 | bachelors "Business Operations Support and
91 | Assistant Services" Other 19.1
92 | bachelors Cognitive Science Sciences 18.1
93 | bachelors "International and
94 | Comparative Education" Other 13
95 | masters "Advanced/Graduate Dentistry
96 | and Oral Sciences" Health and Medicine 158155
97 | masters Visual and Performing Arts Arts and Humanities 63830
98 | masters "Radio, Television, and
99 | Digital Communication" Other 55554
100 | masters Social Sciences Social Sciences 54554
101 | masters Philosophy Social Sciences 54260
102 | masters Journalism Other 53213
103 | masters Statistics Other 53174
104 | masters "Clinical, Counseling, and
105 | Applied Psychology" Health and Medicine 51888
106 | masters "Registered Nursing, Nursing Administration,
107 | Nursing Research, and Clinical Nursing" Health and Medicine 51420
108 | masters Multi/Interdisciplinary Studies Other 48693
109 | masters "Public Relations, Advertising, and
110 | Applied Communication" Other 48366
111 | masters Sociology Social Sciences 46871
112 | masters "Health Professions and
113 | Related Clinical Sciences" Health and Medicine 44598
114 | masters English Language and Literature Arts and Humanities 44301
115 | masters Political Science and Government Social Sciences 43853
116 | masters "Liberal Arts and Sciences, General Studies
117 | and Humanities" Social Sciences 43408
118 | masters "Finance and
119 | Financial Management Services" Other 43408
120 | masters Psychology Social Sciences 43408
121 | masters "Business Administration, Management,
122 | and Operations" Other 43251
123 | masters Economics Other 43053
124 | masters Literature Arts and Humanities 42826
125 | masters Computer Engineering Engineering 42647
126 | masters Public Administration Social Sciences 42154
127 | masters "Arts, Entertainment,
128 | and Media Management" Arts and Humanities 41238
129 | masters History Social Sciences 40948
130 | masters Computer & Information Sciences Sciences 40579
131 | masters Anthropology Social Sciences 40428
132 | masters Biology Sciences 40265
133 | masters Architecture Arts and Humanities 39788
134 | masters Communication and Media Studies Other 39270
135 | masters International/Global Studies Other 37180
136 | masters Zoology/Animal Biology Sciences 37056
137 | masters Hospitality Administration/Management Other 36203
138 | masters Marketing Other 35738
139 | masters Criminology Social Sciences 35318
140 | masters Computer Science Sciences 35301
141 | masters Engineering Engineering 33235
142 | masters Health and Physical Education/Fitness Health and Medicine 32372
143 | masters Agriculture Sciences 30676
144 | masters Geography and Cartography Social Sciences 30657
145 | masters Education Other 29434
146 | masters Chemistry Sciences 28912
147 | masters Accounting Other 28212
148 | masters Mechanical Engineering Engineering 26775
149 | masters Civil Engineering Engineering 26180
150 | masters International Agriculture Sciences 23275
151 |
--------------------------------------------------------------------------------
/data/23-marvel_boxoffocie.tsv:
--------------------------------------------------------------------------------
1 | Release_Date Film Production_Budget Opening_WeekendDomestic Box_OfficeWorldwide Review_ScoreRotten_Tomatoes phase
2 | May 02, 2008 Iron Man 186 102 585 94 1
3 | Jun. 13, 2008 The Incredible Hulk 138 55 266 67 1
4 | May 07, 2010 Iron Man 2 170 128 621 72 1
5 | May 06, 2011 Thor 150 66 449 77 1
6 | Jul. 22, 2011 Captain America: The First Avenger 140 65 371 80 1
7 | May 04, 2012 The Avengers 225 207 1515 91 1
8 | May 03, 2013 Iron Man 3 200 174 1215 79 2
9 | Nov. 08, 2013 Thor: The Dark World 150 86 645 67 2
10 | Apr. 04, 2014 Captain America: The Winter Soldier 170 95 714 90 2
11 | Aug. 01, 2014 Guardians of the Galaxy 170 94 771 92 2
12 | May 01, 2015 Avengers: Age of Ultron 365 191 1395 76 2
13 | Jul. 17, 2015 Ant-Man 130 57 519 83 2
14 | May 06, 2016 Captain America: Civil War 250 179 1152 91 3
15 | Nov. 04, 2016 Doctor Strange 165 85 676 89 3
16 | May 05, 2017 Guardians of the Galaxy Vol 2 200 147 869 85 3
17 | Jul. 07, 2017 Spider-Man: Homecoming 175 117 878 92 3
18 | Nov. 03, 2017 Thor: Ragnarok 180 123 850 93 3
19 | Feb. 16, 2018 Black Panther 200 202 1336 96 3
20 | Apr. 27, 2018 Avengers: Infinity War 300 258 2048 85 3
21 | Jul. 06, 2018 Ant-Man and the Wasp 130 76 623 87 3
22 | Mar. 08, 2019 Captain Marvel 175 153 1130 79 3
23 | Apr. 26, 2019 Avengers: Endgame 400 357 2789 94 3
24 | Jul. 02, 2019 Spider-Man: Far From Home 160 93 1132 90 3
25 | Jul. 09, 2021 Black Widow 200 80 380 79 4
26 | Sep. 03, 2021 Shang-Chi and the Legend of the Ten Rings 150 75 432 92 4
27 | Nov. 05, 2021 Eternals 200 71 402 47 4
28 | Dec. 17, 2021 Spider-Man: No Way Home 200 260 1908 93 4
29 | May 06, 2022 Doctor Strange in the Multiverse of Madness 200 187 952 73 4
30 | Jul. 08, 2022 Thor: Love and Thunder 250 144 761 63 4
31 | Nov. 11, 2022 Black Panther: Wakanda Forever 250 181 854 83 4
32 | Feb. 17, 2023 Ant-Man and the Wasp: Quantumania 200 106 464 46 5
33 | May 05, 2023 Guardians of the Galaxy Vol 3 250 118 845 82 5
34 | Nov. 10, 2023 The Marvels 275 46 61 5
35 |
--------------------------------------------------------------------------------
/data/24-data_cost.tsv:
--------------------------------------------------------------------------------
1 | country cost_per_g
2 | Switzerland 7.29
3 | USA 6
4 | NZ 5.89
5 | Canada 5.37
6 | South 5.01
7 | United 4.6
8 | Norway 4.07
9 | Japan 3.48
10 | Czechia 3.12
11 | Greece 2.79
12 | Worldwide 2.59
13 | Sweden 2.33
14 | Belgium 2.23
15 | Germany 2.14
16 | Mexico 1.8
17 | South Africa 1.77
18 | Portugal 1.71
19 | Hungary 1.61
20 | Netherlands 1.61
21 | Saudi 1.49
22 | Croatia 1.19
23 | Argentina 0.98
24 | Hong Kong 0.92
25 | Taiwan 0.82
26 | Denmark 0.69
27 | Egypt 0.66
28 | Chile 0.63
29 | Morocco 0.63
30 | Singapore 0.63
31 | UK 0.62
32 | Kenya 0.59
33 | Philippines 0.59
34 | Romania 0.54
35 | Austria 0.51
36 | Spain 0.48
37 | Australia 0.44
38 | Turkey 0.41
39 | Thailand 0.4
40 | Ghana 0.4
41 | Brazil 0.38
42 | Nigeria 0.38
43 | China 0.37
44 | Poland 0.28
45 | Vietnam 0.28
46 | Malaysia 0.28
47 | Indonesia 0.28
48 | Russia 0.25
49 | Colombia 0.2
50 | France 0.16
51 | India 0.09
52 | Italy 0.09
53 | Israel 0.02
54 |
--------------------------------------------------------------------------------
/data/README.md:
--------------------------------------------------------------------------------
1 | # Data
2 |
3 | Save raw data files here.
4 |
--------------------------------------------------------------------------------
/data/data.csv:
--------------------------------------------------------------------------------
1 | Hugo_Symbol,samples
2 | TP53,3851
3 | PIK3CA,1396
4 | CSMD3,1351
5 | RYR2,1305
6 | ZFHX4,1039
7 | SPTA1,930
8 | PTEN,870
9 | PCDH15,830
10 | ARID1A,816
11 | APC,815
12 | KRAS,776
13 | BRAF,770
14 | DMD,749
15 | CSMD2,743
16 | COL11A1,700
17 | RELN,692
18 | HYDIN,684
19 | ANK2,674
20 | NAV3,661
21 | FAM135B,651
22 | ATRX,648
23 | CACNA1E,647
24 | PAPPA2,632
25 | NF1,628
26 | SI,626
27 | TENM1,621
28 | HUWE1,615
29 | RP1,613
30 | GPR112,606
31 | MXRA5,606
32 | KIAA1109,595
33 | UNC13C,585
34 | BIRC6,574
35 | THSD7B,571
36 | COL22A1,564
37 | DCHS2,561
38 | ATM,560
39 | FBN2,559
40 | FMN2,559
41 | DSCAM,558
42 | IDH1,553
43 | CNTNAP5,551
44 | ZNF536,549
45 | PEG3,545
46 | C1orf173,541
47 | TENM3,539
48 | PRKDC,539
49 | VCAN,537
50 | SVEP1,536
51 | COL12A1,535
52 | MGAM,534
53 | MYH2,534
54 | SPHKAP,532
55 | FLG2,530
56 | MYCBP2,526
57 | LRRK2,526
58 | CNTNAP2,525
59 | MROH2B,524
60 | PTPRT,523
61 | NRXN1,522
62 | DCC,520
63 | BAI3,518
64 | PTPRD,515
65 | NBEA,515
66 | PRUNE2,512
67 | PXDNL,510
68 | MUC4,508
69 | SDK1,508
70 | MYH1,508
71 | TRRAP,507
72 | ASXL3,505
73 | PLXNA4,503
74 | ADAMTS12,501
75 | TPTE,501
76 | CDH10,501
77 | FLNC,498
78 | UNC79,497
79 | ABCA12,495
80 | COL6A6,493
81 | SCN1A,493
82 | NPAP1,492
83 | AKAP9,492
84 | TNR,487
85 | MYO18B,486
86 | KMT2A,485
87 | PRDM9,483
88 | PCDH11X,482
89 | GRIN2A,481
90 | RIMS2,480
91 | LRRC7,479
92 | NALCN,479
93 | DYNC1H1,477
94 | WDFY3,477
95 | MYH8,475
96 | CREBBP,474
97 | ZNF804A,474
98 | TAF1L,473
99 | HERC1,471
100 | SCN10A,471
101 | ANKRD30A,469
102 |
--------------------------------------------------------------------------------
/data/rangeplot_data.csv:
--------------------------------------------------------------------------------
1 | category,Vote for Clinton,Vote for Trump,group
2 | 18-29,58,28,Age
3 | 30-49,51,40,Age
4 | 50-64,45,51,Age
5 | 65+,44,53,Age
6 | Postgrad,66,29,Education
7 | 4-year college grad,52,41,Education
8 | Some college,42,49,Education
9 | HS or less,44,51,Education
10 | Men,41,52,Gender
11 | Women,54,39,Gender
12 | White,39,54,Race/Ethnicity
13 | Black,91,6,Race/Ethnicity
14 | Hispanic,66,28,Race/Ethnicity
15 | Other,59,32,Race/Ethnicity
--------------------------------------------------------------------------------
/docs/.nojekyll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/.nojekyll
--------------------------------------------------------------------------------
/docs/about.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | About
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
43 |
44 |
45 |
46 |
54 |
55 |
56 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
102 |
103 |
104 |
143 |
144 |
174 |
175 |
176 |
177 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
274 |
275 |
282 |
283 |
284 |
285 |
286 |
287 | workflowr
289 |
290 |
291 |
292 |
305 |
306 |
307 |
308 | Last updated: 2022-07-16
309 |
310 |
311 | Checks: 2
313 | 0
315 |
316 |
317 | Knit directory: basegraphics/
320 |
321 |
322 |
323 | This reproducible R Markdown
324 | analysis was created with workflowr (version
326 | 1.7.0). The Checks tab describes the reproducibility checks
327 | that were applied when the results were created. The Past
328 | versions tab lists the development history.
329 |
330 |
331 |
332 |
333 |
334 |
335 |
343 |
345 |
346 |
Great! Since the R Markdown file has been committed to the Git
347 | repository, you know the exact version of the code that produced these
348 | results.
349 |
350 |
351 |
352 |
353 |
362 |
365 |
366 |
367 | Great! You are using Git for version control. Tracking code development
368 | and connecting the code version to the results is critical for
369 | reproducibility.
370 |
371 |
372 | The results in this page were generated with repository version
373 | 4cd02d0 .
374 | See the Past versions tab to see a history of the changes made
375 | to the R Markdown and HTML files.
376 |
377 |
378 | Note that you need to be careful to ensure that all relevant files for
379 | the analysis have been committed to Git prior to generating the results
380 | (you can use wflow_publish
or
381 | wflow_git_commit
). workflowr only checks the R Markdown
382 | file, but you know if there are other scripts or data files that it
383 | depends on. Below is the status of the Git repository when the results
384 | were generated:
385 |
386 |
387 | Ignored files:
388 | Ignored: .DS_Store
389 | Ignored: .Rhistory
390 | Ignored: .Rproj.user/
391 | Ignored: code/.DS_Store
392 |
393 | Untracked files:
394 | Untracked: .Rbuildignore
395 | Untracked: LICENSE.md
396 | Untracked: code/01-animate_covid-biorxiv.R
397 | Untracked: code/01-barplot_BechdelTest.R
398 | Untracked: code/02-splitbarplot_PopGermany.R
399 | Untracked: code/03-dotplot_OldestCountry.R
400 | Untracked: code/04-arrowplot_WomenInParliment.R
401 | Untracked: code/05-linechart_COVIDrXiv.R
402 | Untracked: code/05-linechart_CigConsumption.R
403 | Untracked: code/06-scatterplot_RichGDP.R
404 | Untracked: code/07-areachart_USmigration.R
405 | Untracked: code/08-donutplot_TopWealth.R
406 |
407 |
408 |
409 | Note that any generated files, e.g. HTML, png, CSS, etc., are not
410 | included in this status report because it is ok for generated content to
411 | have uncommitted changes.
412 |
413 |
414 |
415 |
416 |
417 |
418 |
419 |
420 |
421 |
422 | These are the previous versions of the repository in which changes were
423 | made to the R Markdown (analysis/about.Rmd
) and HTML
424 | (docs/about.html
) files. If you’ve configured a remote Git
425 | repository (see ?wflow_git_remote
), click on the hyperlinks
426 | in the table below to view the files as they were in that past version.
427 |
428 |
429 |
430 |
431 |
432 |
433 | File
434 |
435 |
436 | Version
437 |
438 |
439 | Author
440 |
441 |
442 | Date
443 |
444 |
445 | Message
446 |
447 |
448 |
449 |
450 |
451 |
452 | Rmd
453 |
454 |
455 | 4cd02d0
456 |
457 |
458 | PoisonAlien
459 |
460 |
461 | 2022-07-16
462 |
463 |
464 | workflowr
465 |
466 |
467 |
468 |
469 | Rmd
470 |
471 |
472 | 73c7933
473 |
474 |
475 | PoisonAlien
476 |
477 |
478 | 2022-07-15
479 |
480 |
481 | Start workflowr project.
482 |
483 |
484 |
485 |
486 |
487 |
488 |
489 |
490 |
491 |
Do you like #Rstats
and #Datavisualization
?
492 | This repository demonstrates base R to crate plots generated using base
493 | graphics with no dependencies.
494 |
This is for those who like to learn and customize base R plotting
495 | functions. #BaseisBeautiful
:)
496 |
This repository is maintained by Anand Mayakonda
498 |
499 |
500 |
506 |
511 |
512 |
513 |
514 |
515 |
516 |
517 |
518 |
530 |
531 |
532 |
533 |
544 |
545 |
546 |
547 |
548 |
549 |
557 |
558 |
559 |
560 |
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/Bechdel_test-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/Bechdel_test-1.png
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/DE_parliment-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/DE_parliment-1.png
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/US_age_group-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/US_age_group-1.png
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/US_migration-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/US_migration-1.png
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/berlin_marathon-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/berlin_marathon-1.png
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/blood_groups-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/blood_groups-1.png
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/cal_fires-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/cal_fires-1.png
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/cig_consumption-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/cig_consumption-1.png
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/covi_rxiv-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/covi_rxiv-1.png
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/g7vsbrics-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/g7vsbrics-1.png
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/goldstocks-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/goldstocks-1.png
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/jobs-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/jobs-1.png
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/measles-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/measles-1.png
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/oldest_country-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/oldest_country-1.png
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/pop_pyramid-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/pop_pyramid-1.png
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/rich_health-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/rich_health-1.png
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/stdentdebt-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/stdentdebt-1.png
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/timespent-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/timespent-1.png
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/top_wealth-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/top_wealth-1.png
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/unnamed-chunk-1-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/unnamed-chunk-1-1.png
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/unnamed-chunk-2-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/unnamed-chunk-2-1.png
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/unnamed-chunk-3-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/unnamed-chunk-3-1.png
--------------------------------------------------------------------------------
/docs/figure/baseplots.Rmd/women_parl-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/figure/baseplots.Rmd/women_parl-1.png
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/css/fonts/Lato.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/css/fonts/Lato.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/css/fonts/LatoBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/css/fonts/LatoBold.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/css/fonts/LatoItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/css/fonts/LatoItalic.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/css/fonts/NewsCycle.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/css/fonts/NewsCycle.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/css/fonts/NewsCycleBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/css/fonts/NewsCycleBold.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSans.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSans.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSansBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSansBold.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSansBoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSansBoldItalic.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSansItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSansItalic.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSansLight.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSansLight.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSansLightItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/css/fonts/OpenSansLightItalic.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/css/fonts/Raleway.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/css/fonts/Raleway.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/css/fonts/RalewayBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/css/fonts/RalewayBold.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/css/fonts/Roboto.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/css/fonts/Roboto.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/css/fonts/RobotoBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/css/fonts/RobotoBold.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/css/fonts/RobotoLight.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/css/fonts/RobotoLight.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/css/fonts/RobotoMedium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/css/fonts/RobotoMedium.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/css/fonts/SourceSansPro.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/css/fonts/SourceSansPro.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/css/fonts/SourceSansProBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/css/fonts/SourceSansProBold.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/css/fonts/SourceSansProItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/css/fonts/SourceSansProItalic.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/css/fonts/SourceSansProLight.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/css/fonts/SourceSansProLight.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/css/fonts/Ubuntu.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/css/fonts/Ubuntu.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/bootstrap-3.3.5/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/js/npm.js:
--------------------------------------------------------------------------------
1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
2 | require('../../js/transition.js')
3 | require('../../js/alert.js')
4 | require('../../js/button.js')
5 | require('../../js/carousel.js')
6 | require('../../js/collapse.js')
7 | require('../../js/dropdown.js')
8 | require('../../js/modal.js')
9 | require('../../js/tooltip.js')
10 | require('../../js/popover.js')
11 | require('../../js/scrollspy.js')
12 | require('../../js/tab.js')
13 | require('../../js/affix.js')
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/shim/html5shiv.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @preserve HTML5 Shiv 3.7.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
3 | */
4 | // Only run this code in IE 8
5 | if (!!window.navigator.userAgent.match("MSIE 8")) {
6 | !function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.2",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML=" ",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b)}(this,document);
7 | };
8 |
--------------------------------------------------------------------------------
/docs/site_libs/bootstrap-3.3.5/shim/respond.min.js:
--------------------------------------------------------------------------------
1 | /*! Respond.js v1.4.2: min/max-width media query polyfill * Copyright 2013 Scott Jehl
2 | * Licensed under https://github.com/scottjehl/Respond/blob/master/LICENSE-MIT
3 | * */
4 |
5 | // Only run this code in IE 8
6 | if (!!window.navigator.userAgent.match("MSIE 8")) {
7 | !function(a){"use strict";a.matchMedia=a.matchMedia||function(a){var b,c=a.documentElement,d=c.firstElementChild||c.firstChild,e=a.createElement("body"),f=a.createElement("div");return f.id="mq-test-1",f.style.cssText="position:absolute;top:-100em",e.style.background="none",e.appendChild(f),function(a){return f.innerHTML='',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){u(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))};if(c.ajax=f,c.queue=d,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\([\s]*min\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/,maxw:/\([\s]*max\-width\s*:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var g,h,i,j=a.document,k=j.documentElement,l=[],m=[],n=[],o={},p=30,q=j.getElementsByTagName("head")[0]||k,r=j.getElementsByTagName("base")[0],s=q.getElementsByTagName("link"),t=function(){var a,b=j.createElement("div"),c=j.body,d=k.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=j.createElement("body"),c.style.background="none"),k.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&k.insertBefore(c,k.firstChild),a=b.offsetWidth,f?k.removeChild(c):c.removeChild(b),k.style.fontSize=d,e&&(c.style.fontSize=e),a=i=parseFloat(a)},u=function(b){var c="clientWidth",d=k[c],e="CSS1Compat"===j.compatMode&&d||j.body[c]||d,f={},o=s[s.length-1],r=(new Date).getTime();if(b&&g&&p>r-g)return a.clearTimeout(h),h=a.setTimeout(u,p),void 0;g=r;for(var v in l)if(l.hasOwnProperty(v)){var w=l[v],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?i||t():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?i||t():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(m[w.rules]))}for(var C in n)n.hasOwnProperty(C)&&n[C]&&n[C].parentNode===q&&q.removeChild(n[C]);n.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=j.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,q.insertBefore(E,o.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(j.createTextNode(F)),n.push(E)}},v=function(a,b,d){var e=a.replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var g=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},h=!f&&d;b.length&&(b+="/"),h&&(f=1);for(var i=0;f>i;i++){var j,k,n,o;h?(j=d,m.push(g(a))):(j=e[i].match(c.regex.findStyles)&&RegExp.$1,m.push(RegExp.$2&&g(RegExp.$2))),n=j.split(","),o=n.length;for(var p=0;o>p;p++)k=n[p],l.push({media:k.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:m.length-1,hasquery:k.indexOf("(")>-1,minw:k.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:k.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},w=function(){if(d.length){var b=d.shift();f(b.href,function(c){v(c,b.href,b.media),o[b.href]=!0,a.setTimeout(function(){w()},0)})}},x=function(){for(var b=0;b :first-child");
5 | var i, h, a;
6 | for (i = 0; i < hs.length; i++) {
7 | h = hs[i];
8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6
9 | a = h.attributes;
10 | while (a.length > 0) h.removeAttribute(a[0].name);
11 | }
12 | });
13 |
--------------------------------------------------------------------------------
/docs/site_libs/header-attrs-2.15/header-attrs.js:
--------------------------------------------------------------------------------
1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to
2 | // be compatible with the behavior of Pandoc < 2.8).
3 | document.addEventListener('DOMContentLoaded', function(e) {
4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child");
5 | var i, h, a;
6 | for (i = 0; i < hs.length; i++) {
7 | h = hs[i];
8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6
9 | a = h.attributes;
10 | while (a.length > 0) h.removeAttribute(a[0].name);
11 | }
12 | });
13 |
--------------------------------------------------------------------------------
/docs/site_libs/header-attrs-2.17/header-attrs.js:
--------------------------------------------------------------------------------
1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to
2 | // be compatible with the behavior of Pandoc < 2.8).
3 | document.addEventListener('DOMContentLoaded', function(e) {
4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child");
5 | var i, h, a;
6 | for (i = 0; i < hs.length; i++) {
7 | h = hs[i];
8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6
9 | a = h.attributes;
10 | while (a.length > 0) h.removeAttribute(a[0].name);
11 | }
12 | });
13 |
--------------------------------------------------------------------------------
/docs/site_libs/header-attrs-2.20/header-attrs.js:
--------------------------------------------------------------------------------
1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to
2 | // be compatible with the behavior of Pandoc < 2.8).
3 | document.addEventListener('DOMContentLoaded', function(e) {
4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child");
5 | var i, h, a;
6 | for (i = 0; i < hs.length; i++) {
7 | h = hs[i];
8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6
9 | a = h.attributes;
10 | while (a.length > 0) h.removeAttribute(a[0].name);
11 | }
12 | });
13 |
--------------------------------------------------------------------------------
/docs/site_libs/header-attrs-2.21/header-attrs.js:
--------------------------------------------------------------------------------
1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to
2 | // be compatible with the behavior of Pandoc < 2.8).
3 | document.addEventListener('DOMContentLoaded', function(e) {
4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child");
5 | var i, h, a;
6 | for (i = 0; i < hs.length; i++) {
7 | h = hs[i];
8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6
9 | a = h.attributes;
10 | while (a.length > 0) h.removeAttribute(a[0].name);
11 | }
12 | });
13 |
--------------------------------------------------------------------------------
/docs/site_libs/highlightjs-9.12.0/default.css:
--------------------------------------------------------------------------------
1 | .hljs-literal {
2 | color: #990073;
3 | }
4 |
5 | .hljs-number {
6 | color: #099;
7 | }
8 |
9 | .hljs-comment {
10 | color: #998;
11 | font-style: italic;
12 | }
13 |
14 | .hljs-keyword {
15 | color: #900;
16 | font-weight: bold;
17 | }
18 |
19 | .hljs-string {
20 | color: #d14;
21 | }
22 |
--------------------------------------------------------------------------------
/docs/site_libs/highlightjs-9.12.0/textmate.css:
--------------------------------------------------------------------------------
1 | .hljs-literal {
2 | color: rgb(88, 72, 246);
3 | }
4 |
5 | .hljs-number {
6 | color: rgb(0, 0, 205);
7 | }
8 |
9 | .hljs-comment {
10 | color: rgb(76, 136, 107);
11 | }
12 |
13 | .hljs-keyword {
14 | color: rgb(0, 0, 255);
15 | }
16 |
17 | .hljs-string {
18 | color: rgb(3, 106, 7);
19 | }
20 |
--------------------------------------------------------------------------------
/docs/site_libs/jqueryui-1.11.4/README:
--------------------------------------------------------------------------------
1 | This a jQuery UI custom build, downloaded from:
2 | http://jqueryui.com/download/#!version=1.11.4&components=1111111111110111111111111111111111111
3 |
4 | It includes all components except the datepicker, because it conflicts with
5 | bootstrap-datepicker that is packaged with Shiny.
6 |
7 | The copy of jQuery that is bundled with the download, under external/, is not
8 | included because Shiny already has its own copy of jQuery.
9 |
--------------------------------------------------------------------------------
/docs/site_libs/jqueryui-1.11.4/images/ui-icons_444444_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/jqueryui-1.11.4/images/ui-icons_444444_256x240.png
--------------------------------------------------------------------------------
/docs/site_libs/jqueryui-1.11.4/images/ui-icons_555555_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/jqueryui-1.11.4/images/ui-icons_555555_256x240.png
--------------------------------------------------------------------------------
/docs/site_libs/jqueryui-1.11.4/images/ui-icons_777620_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/jqueryui-1.11.4/images/ui-icons_777620_256x240.png
--------------------------------------------------------------------------------
/docs/site_libs/jqueryui-1.11.4/images/ui-icons_777777_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/jqueryui-1.11.4/images/ui-icons_777777_256x240.png
--------------------------------------------------------------------------------
/docs/site_libs/jqueryui-1.11.4/images/ui-icons_cc0000_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/jqueryui-1.11.4/images/ui-icons_cc0000_256x240.png
--------------------------------------------------------------------------------
/docs/site_libs/jqueryui-1.11.4/images/ui-icons_ffffff_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/docs/site_libs/jqueryui-1.11.4/images/ui-icons_ffffff_256x240.png
--------------------------------------------------------------------------------
/docs/site_libs/jqueryui-1.11.4/jquery-ui.structure.min.css:
--------------------------------------------------------------------------------
1 | /*! jQuery UI - v1.11.4 - 2016-01-05
2 | * http://jqueryui.com
3 | * Copyright jQuery Foundation and other contributors; Licensed MIT */
4 |
5 | .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}
--------------------------------------------------------------------------------
/docs/site_libs/jqueryui-1.11.4/jquery-ui.theme.min.css:
--------------------------------------------------------------------------------
1 | /*! jQuery UI - v1.11.4 - 2016-01-05
2 | * http://jqueryui.com
3 | * Copyright jQuery Foundation and other contributors; Licensed MIT */
4 |
5 | .ui-widget{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #ddd;background:#e9e9e9;color:#333;font-weight:bold}.ui-widget-header a{color:#333}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:normal;color:#454545}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#454545;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #ccc;background:#ededed;font-weight:normal;color:#2b2b2b}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#2b2b2b;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #003eff;background:#007fff;font-weight:normal;color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#5f3f3f}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_777777_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_555555_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_777620_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cc0000_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:3px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:0 0 0 0;padding:5px;background:#666;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}
--------------------------------------------------------------------------------
/docs/site_libs/navigation-1.1/codefolding-lua.css:
--------------------------------------------------------------------------------
1 | detaiks.chunk-details > summary.chunk-summary {
2 | text-align: right;
3 | }
4 | details.chunk-details[open] > summary.chunk-summary::after {
5 | content: "Hide";
6 | }
7 | details.chunk-details[open] > summary.chunk-summary > span.chunk-summary-text {
8 | display: none;
9 | }
10 |
--------------------------------------------------------------------------------
/docs/site_libs/navigation-1.1/codefolding.js:
--------------------------------------------------------------------------------
1 |
2 | window.initializeCodeFolding = function(show) {
3 |
4 | // handlers for show-all and hide all
5 | $("#rmd-show-all-code").click(function() {
6 | $('div.r-code-collapse').each(function() {
7 | $(this).collapse('show');
8 | });
9 | });
10 | $("#rmd-hide-all-code").click(function() {
11 | $('div.r-code-collapse').each(function() {
12 | $(this).collapse('hide');
13 | });
14 | });
15 |
16 | // index for unique code element ids
17 | var currentIndex = 1;
18 |
19 | // select all R code blocks
20 | var rCodeBlocks = $('pre.r, pre.python, pre.bash, pre.sql, pre.cpp, pre.stan, pre.julia, pre.foldable');
21 | rCodeBlocks.each(function() {
22 | // skip if the block has fold-none class
23 | if ($(this).hasClass('fold-none')) return;
24 |
25 | // create a collapsable div to wrap the code in
26 | var div = $('
');
27 | var showThis = (show || $(this).hasClass('fold-show')) && !$(this).hasClass('fold-hide');
28 | var id = 'rcode-643E0F36' + currentIndex++;
29 | div.attr('id', id);
30 | $(this).before(div);
31 | $(this).detach().appendTo(div);
32 |
33 | // add a show code button right above
34 | var showCodeText = $('' + (showThis ? 'Hide' : 'Code') + ' ');
35 | var showCodeButton = $(' ');
36 | showCodeButton.append(showCodeText);
37 | showCodeButton
38 | .attr('data-toggle', 'collapse')
39 | .attr('data-bs-toggle', 'collapse') // BS5
40 | .attr('data-target', '#' + id)
41 | .attr('data-bs-target', '#' + id) // BS5
42 | .attr('aria-expanded', showThis)
43 | .attr('aria-controls', id);
44 |
45 | var buttonRow = $('
');
46 | var buttonCol = $('
');
47 |
48 | buttonCol.append(showCodeButton);
49 | buttonRow.append(buttonCol);
50 |
51 | div.before(buttonRow);
52 |
53 | // show the div if necessary
54 | if (showThis) div.collapse('show');
55 |
56 | // update state of button on show/hide
57 | // * Change text
58 | // * add a class for intermediate states styling
59 | div.on('hide.bs.collapse', function () {
60 | showCodeText.text('Code');
61 | showCodeButton.addClass('btn-collapsing');
62 | });
63 | div.on('hidden.bs.collapse', function () {
64 | showCodeButton.removeClass('btn-collapsing');
65 | });
66 | div.on('show.bs.collapse', function () {
67 | showCodeText.text('Hide');
68 | showCodeButton.addClass('btn-expanding');
69 | });
70 | div.on('shown.bs.collapse', function () {
71 | showCodeButton.removeClass('btn-expanding');
72 | });
73 |
74 | });
75 |
76 | }
77 |
--------------------------------------------------------------------------------
/docs/site_libs/navigation-1.1/sourceembed.js:
--------------------------------------------------------------------------------
1 |
2 | window.initializeSourceEmbed = function(filename) {
3 | $("#rmd-download-source").click(function() {
4 | var src = $("#rmd-source-code").html();
5 | var a = document.createElement('a');
6 | a.href = "data:text/x-r-markdown;base64," + src;
7 | a.download = filename;
8 | document.body.appendChild(a);
9 | a.click();
10 | document.body.removeChild(a);
11 | });
12 | };
13 |
--------------------------------------------------------------------------------
/docs/site_libs/navigation-1.1/tabsets.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | /**
4 | * jQuery Plugin: Sticky Tabs
5 | *
6 | * @author Aidan Lister
7 | * adapted by Ruben Arslan to activate parent tabs too
8 | * http://www.aidanlister.com/2014/03/persisting-the-tab-state-in-bootstrap/
9 | */
10 | (function($) {
11 | "use strict";
12 | $.fn.rmarkdownStickyTabs = function() {
13 | var context = this;
14 | // Show the tab corresponding with the hash in the URL, or the first tab
15 | var showStuffFromHash = function() {
16 | var hash = window.location.hash;
17 | var selector = hash ? 'a[href="' + hash + '"]' : 'li.active > a';
18 | var $selector = $(selector, context);
19 | if($selector.data('toggle') === "tab") {
20 | $selector.tab('show');
21 | // walk up the ancestors of this element, show any hidden tabs
22 | $selector.parents('.section.tabset').each(function(i, elm) {
23 | var link = $('a[href="#' + $(elm).attr('id') + '"]');
24 | if(link.data('toggle') === "tab") {
25 | link.tab("show");
26 | }
27 | });
28 | }
29 | };
30 |
31 |
32 | // Set the correct tab when the page loads
33 | showStuffFromHash(context);
34 |
35 | // Set the correct tab when a user uses their back/forward button
36 | $(window).on('hashchange', function() {
37 | showStuffFromHash(context);
38 | });
39 |
40 | // Change the URL when tabs are clicked
41 | $('a', context).on('click', function(e) {
42 | history.pushState(null, null, this.href);
43 | showStuffFromHash(context);
44 | });
45 |
46 | return this;
47 | };
48 | }(jQuery));
49 |
50 | window.buildTabsets = function(tocID) {
51 |
52 | // build a tabset from a section div with the .tabset class
53 | function buildTabset(tabset) {
54 |
55 | // check for fade and pills options
56 | var fade = tabset.hasClass("tabset-fade");
57 | var pills = tabset.hasClass("tabset-pills");
58 | var navClass = pills ? "nav-pills" : "nav-tabs";
59 |
60 | // determine the heading level of the tabset and tabs
61 | var match = tabset.attr('class').match(/level(\d) /);
62 | if (match === null)
63 | return;
64 | var tabsetLevel = Number(match[1]);
65 | var tabLevel = tabsetLevel + 1;
66 |
67 | // find all subheadings immediately below
68 | var tabs = tabset.find("div.section.level" + tabLevel);
69 | if (!tabs.length)
70 | return;
71 |
72 | // create tablist and tab-content elements
73 | var tabList = $('');
74 | $(tabs[0]).before(tabList);
75 | var tabContent = $('
');
76 | $(tabs[0]).before(tabContent);
77 |
78 | // build the tabset
79 | var activeTab = 0;
80 | tabs.each(function(i) {
81 |
82 | // get the tab div
83 | var tab = $(tabs[i]);
84 |
85 | // get the id then sanitize it for use with bootstrap tabs
86 | var id = tab.attr('id');
87 |
88 | // see if this is marked as the active tab
89 | if (tab.hasClass('active'))
90 | activeTab = i;
91 |
92 | // remove any table of contents entries associated with
93 | // this ID (since we'll be removing the heading element)
94 | $("div#" + tocID + " li a[href='#" + id + "']").parent().remove();
95 |
96 | // sanitize the id for use with bootstrap tabs
97 | id = id.replace(/[.\/?&!#<>]/g, '').replace(/\s/g, '_');
98 | tab.attr('id', id);
99 |
100 | // get the heading element within it, grab it's text, then remove it
101 | var heading = tab.find('h' + tabLevel + ':first');
102 | var headingText = heading.html();
103 | heading.remove();
104 |
105 | // build and append the tab list item
106 | var a = $('' + headingText + ' ');
107 | a.attr('href', '#' + id);
108 | a.attr('aria-controls', id);
109 | var li = $(' ');
110 | li.append(a);
111 | tabList.append(li);
112 |
113 | // set it's attributes
114 | tab.attr('role', 'tabpanel');
115 | tab.addClass('tab-pane');
116 | tab.addClass('tabbed-pane');
117 | if (fade)
118 | tab.addClass('fade');
119 |
120 | // move it into the tab content div
121 | tab.detach().appendTo(tabContent);
122 | });
123 |
124 | // set active tab
125 | $(tabList.children('li')[activeTab]).addClass('active');
126 | var active = $(tabContent.children('div.section')[activeTab]);
127 | active.addClass('active');
128 | if (fade)
129 | active.addClass('in');
130 |
131 | if (tabset.hasClass("tabset-sticky"))
132 | tabset.rmarkdownStickyTabs();
133 | }
134 |
135 | // convert section divs with the .tabset class to tabsets
136 | var tabsets = $("div.section.tabset");
137 | tabsets.each(function(i) {
138 | buildTabset($(tabsets[i]));
139 | });
140 | };
141 |
142 |
--------------------------------------------------------------------------------
/docs/site_libs/tocify-1.9.1/jquery.tocify.css:
--------------------------------------------------------------------------------
1 | /*
2 | * jquery.tocify.css 1.9.1
3 | * Author: @gregfranko
4 | */
5 |
6 | /* The Table of Contents container element */
7 | .tocify {
8 | width: 20%;
9 | max-height: 90%;
10 | overflow: auto;
11 | margin-left: 2%;
12 | position: fixed;
13 | border: 1px solid #ccc;
14 | border-radius: 6px;
15 | }
16 |
17 | /* The Table of Contents is composed of multiple nested unordered lists. These styles remove the default styling of an unordered list because it is ugly. */
18 | .tocify ul, .tocify li {
19 | list-style: none;
20 | margin: 0;
21 | padding: 0;
22 | border: none;
23 | line-height: 30px;
24 | }
25 |
26 | /* Top level header elements */
27 | .tocify-header {
28 | text-indent: 10px;
29 | }
30 |
31 | /* Top level subheader elements. These are the first nested items underneath a header element. */
32 | .tocify-subheader {
33 | text-indent: 20px;
34 | display: none;
35 | }
36 |
37 | /* Makes the font smaller for all subheader elements. */
38 | .tocify-subheader li {
39 | font-size: 12px;
40 | }
41 |
42 | /* Further indents second level subheader elements. */
43 | .tocify-subheader .tocify-subheader {
44 | text-indent: 30px;
45 | }
46 | .tocify-subheader .tocify-subheader .tocify-subheader {
47 | text-indent: 40px;
48 | }
49 | .tocify-subheader .tocify-subheader .tocify-subheader .tocify-subheader {
50 | text-indent: 50px;
51 | }
52 | .tocify-subheader .tocify-subheader .tocify-subheader .tocify-subheader .tocify-subheader {
53 | text-indent: 60px;
54 | }
55 |
56 | /* Twitter Bootstrap Override Style */
57 | .tocify .tocify-item > a, .tocify .nav-list .nav-header {
58 | margin: 0px;
59 | }
60 |
61 | /* Twitter Bootstrap Override Styles */
62 | .tocify .tocify-item a, .tocify .list-group-item {
63 | padding: 5px;
64 | }
65 |
66 | .tocify .nav-pills > li {
67 | float: none;
68 | }
69 |
70 | /* We don't override the bootstrap colors because this gives us the
71 | wrong selection colors when using bootstrap themes
72 |
73 | .tocify .list-group-item:hover, .tocify .list-group-item:focus {
74 | background-color: #f5f5f5;
75 | }
76 |
77 | .tocify .list-group-item.active:hover, .tocify .list-group-item.active:focus {
78 | background-color: #428bca;
79 | }
80 | */
81 |
82 | /* End Twitter Bootstrap Override Styles */
83 |
--------------------------------------------------------------------------------
/main.nf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/main.nf
--------------------------------------------------------------------------------
/plots.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PoisonAlien/basegraphics/101261cfb27408f85e20d5f7692360739dff70b4/plots.png
--------------------------------------------------------------------------------