Willibrordus Bayu 12/15/2021
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
library(ggplot2)
ggplot(data = diamonds,
mapping = aes(x = carat, y = price, colour = clarity)) +
geom_point()library(ggplot2)
# Cara 1
diamonds_c1 <-
ggplot(data = diamonds,
mapping = aes(x = carat, y = price, colour = clarity)) +
geom_point()
summary(diamonds_c1)## data: carat, cut, color, clarity, depth, table, price, x, y, z
## [53940x10]
## mapping: x = ~carat, y = ~price, colour = ~clarity
## faceting: <ggproto object: Class FacetNull, Facet, gg>
## compute_layout: function
## draw_back: function
## draw_front: function
## draw_labels: function
## draw_panels: function
## finish_data: function
## init_scales: function
## map_data: function
## params: list
## setup_data: function
## setup_params: function
## shrink: TRUE
## train_scales: function
## vars: function
## super: <ggproto object: Class FacetNull, Facet, gg>
## -----------------------------------
## geom_point: na.rm = FALSE
## stat_identity: na.rm = FALSE
## position_identity
# Cara 2
diamonds_c2 <-
ggplot(data = diamonds) +
geom_point(mapping = aes(x = carat, y = price, colour = clarity))
summary(diamonds_c2)## data: carat, cut, color, clarity, depth, table, price, x, y, z
## [53940x10]
## faceting: <ggproto object: Class FacetNull, Facet, gg>
## compute_layout: function
## draw_back: function
## draw_front: function
## draw_labels: function
## draw_panels: function
## finish_data: function
## init_scales: function
## map_data: function
## params: list
## setup_data: function
## setup_params: function
## shrink: TRUE
## train_scales: function
## vars: function
## super: <ggproto object: Class FacetNull, Facet, gg>
## -----------------------------------
## mapping: x = ~carat, y = ~price, colour = ~clarity
## geom_point: na.rm = FALSE
## stat_identity: na.rm = FALSE
## position_identity
# Cara 3
diamonds_c3 <-
ggplot() +
geom_point(
data = diamonds,
mapping = aes(x = carat, y = price, colour = clarity)
)
summary(diamonds_c3)## data: [x]
## faceting: <ggproto object: Class FacetNull, Facet, gg>
## compute_layout: function
## draw_back: function
## draw_front: function
## draw_labels: function
## draw_panels: function
## finish_data: function
## init_scales: function
## map_data: function
## params: list
## setup_data: function
## setup_params: function
## shrink: TRUE
## train_scales: function
## vars: function
## super: <ggproto object: Class FacetNull, Facet, gg>
## -----------------------------------
## mapping: x = ~carat, y = ~price, colour = ~clarity
## geom_point: na.rm = FALSE
## stat_identity: na.rm = FALSE
## position_identity
library(dplyr)##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
glimpse(storms)## Rows: 10,010
## Columns: 13
## $ name <chr> "Amy", "Amy", "Amy", "Amy", "Amy", "Amy", "Amy", "Amy", "A~
## $ year <dbl> 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975~
## $ month <dbl> 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7~
## $ day <int> 27, 27, 27, 27, 28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30~
## $ hour <dbl> 0, 6, 12, 18, 0, 6, 12, 18, 0, 6, 12, 18, 0, 6, 12, 18, 0,~
## $ lat <dbl> 27.5, 28.5, 29.5, 30.5, 31.5, 32.4, 33.3, 34.0, 34.4, 34.0~
## $ long <dbl> -79.0, -79.0, -79.0, -79.0, -78.8, -78.7, -78.0, -77.0, -7~
## $ status <chr> "tropical depression", "tropical depression", "tropical de~
## $ category <ord> -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ wind <int> 25, 25, 25, 25, 25, 25, 25, 30, 35, 40, 45, 50, 50, 55, 60~
## $ pressure <int> 1013, 1013, 1013, 1013, 1012, 1012, 1011, 1006, 1004, 1002~
## $ ts_diameter <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA~
## $ hu_diameter <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA~
# Tanpa menggunakan %>%
storms1 <- select(storms, year, month, wind, pressure)
storms2 <- filter(storms1, between(year, 2000, 2015))
storms3 <- mutate(storms2, month = factor(month.name[storms2$month], levels = month.name))
storms4 <- group_by(storms3, month)
storms_nopipe <- summarise(storms4, avg_wind = mean(wind), avg_pressure = mean(pressure))
glimpse(storms_nopipe)## Rows: 10
## Columns: 3
## $ month <fct> January, April, May, June, July, August, September, Octob~
## $ avg_wind <dbl> 45.65217, 44.61538, 36.76471, 39.03030, 48.21981, 51.9697~
## $ avg_pressure <dbl> 999.4348, 996.9231, 1003.4510, 999.5333, 999.1300, 994.09~
# Menggunakan %>%
storms_pipe <-
storms %>%
select(year, month, wind, pressure) %>%
filter(between(year, 2000, 2015)) %>%
mutate(month = factor(month.name[month], levels = month.name)) %>%
group_by(month) %>%
summarise(
avg_wind = mean(wind),
avg_pressure = mean(pressure)
)
glimpse(storms_pipe) ## Rows: 10
## Columns: 3
## $ month <fct> January, April, May, June, July, August, September, Octob~
## $ avg_wind <dbl> 45.65217, 44.61538, 36.76471, 39.03030, 48.21981, 51.9697~
## $ avg_pressure <dbl> 999.4348, 996.9231, 1003.4510, 999.5333, 999.1300, 994.09~
# Komparasi metode tanpa pipe dan dengan pipe
identical(storms_nopipe, storms_pipe) ## [1] TRUE
library(readr)
indodapoer <- read_tsv("https://storage.googleapis.com/dqlab-dataset/indodapoer.tsv.gz")##
## -- Column specification --------------------------------------------------------
## cols(
## .default = col_double(),
## area_name = col_character(),
## `Import: Commodities and transaction not elsewhere classified (province Level, in USD)` = col_logical(),
## `Length of National Road: Dirt (in km) (BPS Data, Province only)` = col_logical(),
## `Length of National Road: Other (in km) (BPS Data, Province only)` = col_logical(),
## `Total Natural Resources Revenue Sharing from Geothermal Energy (in IDR, realization value)` = col_logical(),
## `Total Revenue Sharing` = col_logical(),
## `Total Specific Allocation Grant for Village (in IDR Billion)` = col_logical()
## )
## i Use `spec()` for the full column specifications.
## Warning: 232 parsing failures.
## row col expected actual file
## 1008 Import: Commodities and transaction not elsewhere classified (province Level, in USD) 1/0/T/F/TRUE/FALSE 554693 'https://storage.googleapis.com/dqlab-dataset/indodapoer.tsv.gz'
## 1009 Import: Commodities and transaction not elsewhere classified (province Level, in USD) 1/0/T/F/TRUE/FALSE 1291450 'https://storage.googleapis.com/dqlab-dataset/indodapoer.tsv.gz'
## 1010 Import: Commodities and transaction not elsewhere classified (province Level, in USD) 1/0/T/F/TRUE/FALSE 365356 'https://storage.googleapis.com/dqlab-dataset/indodapoer.tsv.gz'
## 1011 Import: Commodities and transaction not elsewhere classified (province Level, in USD) 1/0/T/F/TRUE/FALSE 216478 'https://storage.googleapis.com/dqlab-dataset/indodapoer.tsv.gz'
## 1012 Import: Commodities and transaction not elsewhere classified (province Level, in USD) 1/0/T/F/TRUE/FALSE 646310 'https://storage.googleapis.com/dqlab-dataset/indodapoer.tsv.gz'
## .... ..................................................................................... .................. ....... ................................................................
## See problems(...) for more details.
nrow(indodapoer)## [1] 22468
ncol(indodapoer)## [1] 222
library(janitor)## Warning: package 'janitor' was built under R version 4.1.2
##
## Attaching package: 'janitor'
## The following objects are masked from 'package:stats':
##
## chisq.test, fisher.test
head(colnames(indodapoer), 15)## [1] "area_name"
## [2] "year"
## [3] "Agriculture function expenditure (in IDR)"
## [4] "Average National Exam Score: Junior Secondary Level (out of 100, available only in district level for 2009)"
## [5] "Average National Exam Score: Primary Level (out of 100, available only in district level for 2009)"
## [6] "Average National Exam Score: Senior Secondary Level (out of 100, available only in district level for 2009)"
## [7] "Birth attended by Skilled Health worker (in % of total birth)"
## [8] "BPK Audit Report on Sub-National Budget"
## [9] "Capital expenditure (in IDR)"
## [10] "Consumer Price Index in 42 cities base 1996"
## [11] "Consumer Price Index in 45 cities base 2002"
## [12] "Consumer Price Index in 66 cities base 2007"
## [13] "Economy function expenditure (in IDR)"
## [14] "Education function expenditure (in IDR)"
## [15] "Environment function expenditure (in IDR)"
indodapoer <- clean_names(indodapoer)
head(colnames(indodapoer), 15)## [1] "area_name"
## [2] "year"
## [3] "agriculture_function_expenditure_in_idr"
## [4] "average_national_exam_score_junior_secondary_level_out_of_100_available_only_in_district_level_for_2009"
## [5] "average_national_exam_score_primary_level_out_of_100_available_only_in_district_level_for_2009"
## [6] "average_national_exam_score_senior_secondary_level_out_of_100_available_only_in_district_level_for_2009"
## [7] "birth_attended_by_skilled_health_worker_in_percent_of_total_birth"
## [8] "bpk_audit_report_on_sub_national_budget"
## [9] "capital_expenditure_in_idr"
## [10] "consumer_price_index_in_42_cities_base_1996"
## [11] "consumer_price_index_in_45_cities_base_2002"
## [12] "consumer_price_index_in_66_cities_base_2007"
## [13] "economy_function_expenditure_in_idr"
## [14] "education_function_expenditure_in_idr"
## [15] "environment_function_expenditure_in_idr"
library(stringr)
library(dplyr)
pdrb_pjawa <-
indodapoer %>%
filter(
area_name %in% c(
"Banten, Prop.",
"DKI Jakarta, Prop.",
"Jawa Barat, Prop.",
"Jawa Tengah, Prop.",
"DI Yogyakarta, Prop.",
"Jawa Timur, Prop."
)
) %>%
transmute(
provinsi = str_remove(area_name, ", Prop."),
tahun = year,
pdrb_nonmigas = total_gdp_excluding_oil_and_gas_in_idr_million_constant_price) %>%
filter(!is.na(pdrb_nonmigas))
glimpse(pdrb_pjawa)## Rows: 164
## Columns: 3
## $ provinsi <chr> "Banten", "Banten", "Banten", "Banten", "Banten", "Bante~
## $ tahun <dbl> 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 20~
## $ pdrb_nonmigas <dbl> 45690559, 47495383, 49449321, 51957458, 54880407, 581069~
library(dplyr)
library(ggplot2)
library(forcats)
pdrb_pjawa %>%
mutate(
provinsi = fct_reorder2(provinsi, tahun, pdrb_nonmigas)
) %>%
ggplot(aes(tahun, pdrb_nonmigas, colour = provinsi)) +
geom_line()library(ggplot2)
library(dplyr)
library(directlabels)## Warning: package 'directlabels' was built under R version 4.1.2
pdrb_pjawa %>%
ggplot(aes(tahun, pdrb_nonmigas)) +
geom_line(aes(colour = provinsi), show.legend = FALSE) +
geom_dl(
aes(label = provinsi),
method = "last.points",
position = position_nudge(x = 0.3) # agar teks tidak berhimpitan dengan garis
)library(ggplot2)
library(dplyr)
library(directlabels)
library(hrbrthemes)## Warning: package 'hrbrthemes' was built under R version 4.1.2
## NOTE: Either Arial Narrow or Roboto Condensed fonts are required to use these themes.
## Please use hrbrthemes::import_roboto_condensed() to install Roboto Condensed and
## if Arial Narrow is not on your system, please see https://bit.ly/arialnarrow
pdrb_pjawa %>%
ggplot(aes(tahun, pdrb_nonmigas / 1e6)) +
geom_line(aes(colour = provinsi), show.legend = FALSE) +
geom_dl(
aes(label = provinsi),
method = "last.points",
position = position_nudge(x = 0.3) # agar teks tidak berhimpitan dengan garis
) +
labs(
x = NULL,
y = NULL,
title = "PDRB Non-Migas di Pulau Jawa Hingga Tahun 2011",
subtitle = "PDRB atas dasar harga konstan, dalam satuan triliun",
caption = "Data: INDO-DAPOER, The World Bank"
) +
coord_cartesian(clip = "off") +
theme_ipsum(grid = "Y", ticks = TRUE)## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family not
## found in Windows font database
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family not
## found in Windows font database
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family not
## found in Windows font database
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family not
## found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
library(dplyr)
library(stringr)
luas_provinsi <-
indodapoer %>%
filter(str_detect(area_name, "Prop")) %>%
filter(year == 2009) %>%
transmute(
provinsi = str_remove(area_name, ", Prop."),
luas_wilayah = total_area_in_km2
)
glimpse(luas_provinsi)## Rows: 34
## Columns: 2
## $ provinsi <chr> "Nanggroe Aceh Darussalam", "Bali", "Kepulauan Bangka-Bel~
## $ luas_wilayah <dbl> 57956.00, 5780.06, 16424.06, 19919.33, 9662.92, 11257.07,~
library(treemapify)## Warning: package 'treemapify' was built under R version 4.1.2
library(ggplot2)
library(dplyr)
luas_provinsi %>%
ggplot(aes(area = luas_wilayah)) +
geom_treemap() +
geom_treemap_text(aes(label = provinsi))## Warning: Removed 1 rows containing missing values (geom_treemap).
## Warning: Removed 1 rows containing missing values (geom_treemap_text).
library(ggplot2)
library(hrbrthemes)
library(dplyr)
library(treemapify)
library(scales)##
## Attaching package: 'scales'
## The following object is masked from 'package:readr':
##
## col_factor
luas_provinsi %>%
ggplot(aes(
area = luas_wilayah,
fill = luas_wilayah)
) +
geom_treemap() +
geom_treemap_text(
aes(label = provinsi),
family = "Arial Narrow",
colour = "white",
reflow = TRUE,
grow = TRUE
) +
scale_fill_viridis_c(
guide = guide_colourbar(
barwidth = 30,
barheight = 0.8
),
labels = label_number(
big.mark = ".",
decimal.mark = ",",
suffix = " km2")
) +
labs(
fill = "Luas\nwilayah",
title = "Perbandingan Luas 33 Provinsi di Indonesia",
subtitle = "Berdasarkan data tahun 2009, sehingga Kalimantan Utara tidak tercantum dalam grafik",
caption = "Data: INDO-DAPOER, The World Bank"
) +
theme_ipsum() +
theme(legend.position = "bottom")## Warning: Removed 1 rows containing missing values (geom_treemap).
## Warning: Removed 1 rows containing missing values (geom_treemap_text).
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family not
## found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
library(dplyr)
library(stringr)
jalan_kabkota <-
indodapoer %>%
filter(str_detect(area_name, ", Prop.", negate = TRUE)) %>%
filter(year == 2008) %>%
transmute(
kabkota = area_name,
jalan_rusak_parah = length_of_district_road_bad_damage_in_km_bina_marga_data,
jalan_rusak_ringan = length_of_district_road_light_damage_in_km_bina_marga_data,
jalan_cukup_baik = length_of_district_road_fair_in_km_bina_marga_data,
jalan_sangat_baik = length_of_district_road_good_in_km_bina_marga_data
)
glimpse(jalan_kabkota)## Rows: 514
## Columns: 5
## $ kabkota <chr> "Aceh Barat, Kab.", "Aceh Barat Daya, Kab.", "Aceh ~
## $ jalan_rusak_parah <dbl> 64, 1, 97, 112, 21, NA, 130, 8, 168, 76, 25, NA, 39~
## $ jalan_rusak_ringan <dbl> 191, 15, 101, 321, 36, 553, 183, 207, 174, 35, 708,~
## $ jalan_cukup_baik <dbl> 218, 81, 270, 416, 59, 170, 146, 284, 201, 74, 333,~
## $ jalan_sangat_baik <dbl> 153, 87, 105, 284, 89, 25, 177, 432, 177, 221, 339,~
library(tidyr)
library(dplyr)
glimpse(jalan_kabkota)## Rows: 514
## Columns: 5
## $ kabkota <chr> "Aceh Barat, Kab.", "Aceh Barat Daya, Kab.", "Aceh ~
## $ jalan_rusak_parah <dbl> 64, 1, 97, 112, 21, NA, 130, 8, 168, 76, 25, NA, 39~
## $ jalan_rusak_ringan <dbl> 191, 15, 101, 321, 36, 553, 183, 207, 174, 35, 708,~
## $ jalan_cukup_baik <dbl> 218, 81, 270, 416, 59, 170, 146, 284, 201, 74, 333,~
## $ jalan_sangat_baik <dbl> 153, 87, 105, 284, 89, 25, 177, 432, 177, 221, 339,~
jalan_kabkota <-
jalan_kabkota %>%
pivot_longer(
cols = starts_with("jalan_"),
names_to = "kondisi",
names_prefix = "jalan_",
values_to = "panjang_jalan"
)
glimpse(jalan_kabkota)## Rows: 2,056
## Columns: 3
## $ kabkota <chr> "Aceh Barat, Kab.", "Aceh Barat, Kab.", "Aceh Barat, Kab~
## $ kondisi <chr> "rusak_parah", "rusak_ringan", "cukup_baik", "sangat_bai~
## $ panjang_jalan <dbl> 64, 191, 218, 153, 1, 15, 81, 87, 97, 101, 270, 105, 112~
library(dplyr)
library(stringr)
jalan_kabkota <-
jalan_kabkota %>%
mutate(
status = case_when(
str_detect(kabkota, ", Kab") ~ "Kabupaten",
str_detect(kabkota, ", Kota") ~ "Kota",
str_detect(kabkota, "City") ~ "Kota",
TRUE ~ NA_character_
),
kondisi = factor(
kondisi,
levels = c("rusak_parah", "rusak_ringan", "cukup_baik", "sangat_baik"),
labels = c("Rusak parah", "Rusak ringan", "Cukup baik", "Sangat baik")
)
)
glimpse(jalan_kabkota)## Rows: 2,056
## Columns: 4
## $ kabkota <chr> "Aceh Barat, Kab.", "Aceh Barat, Kab.", "Aceh Barat, Kab~
## $ kondisi <fct> Rusak parah, Rusak ringan, Cukup baik, Sangat baik, Rusa~
## $ panjang_jalan <dbl> 64, 191, 218, 153, 1, 15, 81, 87, 97, 101, 270, 105, 112~
## $ status <chr> "Kabupaten", "Kabupaten", "Kabupaten", "Kabupaten", "Kab~
library(ggplot2)
library(dplyr)
library(ggridges)## Warning: package 'ggridges' was built under R version 4.1.2
jalan_kabkota_plot <-
jalan_kabkota %>%
ggplot(aes(panjang_jalan, kondisi)) +
facet_wrap(~status) +
geom_density_ridges_gradient(
aes(fill = after_stat(x)),
show.legend = FALSE
)
jalan_kabkota_plot +
geom_vline(xintercept = 100, linetype = "dashed", colour = "darkslategray4") +
scale_x_continuous(trans = "log10")## Picking joint bandwidth of 0.128
## Picking joint bandwidth of 0.17
library(ggplot2)
library(dplyr)
library(ggridges)
library(hrbrthemes)
jalan_kabkota_plot <-
jalan_kabkota %>%
ggplot(aes(panjang_jalan, kondisi)) +
facet_wrap(~status) +
geom_density_ridges_gradient(
aes(fill = after_stat(x)),
show.legend = FALSE
)
jalan_kabkota_plot +
geom_vline(xintercept = 100, linetype = "dashed", colour = "darkslategray4") +
scale_x_continuous(trans = "log10") +
scale_fill_viridis_c(option = "magma") +
labs(
x = "Panjang jalan (Km)",
y = NULL,
title = "Jalan Kabupaten/Kota Berdasarkan Kondisi",
subtitle = "Berdasarkan data tahun 2008, garis vertikal menunjukan panjang jalan 100 Km",
caption = "Data: INDO-DAPOER, The World Bank"
) +
theme_ipsum(grid = FALSE, ticks = TRUE)## Picking joint bandwidth of 0.128
## Picking joint bandwidth of 0.17
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
library(ggtext)## Warning: package 'ggtext' was built under R version 4.1.2
library(forcats)
library(ggplot2)
library(dplyr)
library(readr)
igstats <- read_csv("https://storage.googleapis.com/dqlab-dataset/igstats.csv")##
## -- Column specification --------------------------------------------------------
## cols(
## day = col_character(),
## is_weekend = col_logical(),
## nposts = col_double(),
## nlikes = col_double(),
## avglikes = col_double()
## )
glimpse(igstats)## Rows: 7
## Columns: 5
## $ day <chr> "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Fr~
## $ is_weekend <lgl> TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE
## $ nposts <dbl> 10, 103, 78, 93, 80, 108, 23
## $ nlikes <dbl> 1237, 16055, 10496, 12803, 10474, 25595, 3828
## $ avglikes <dbl> 123.7000, 155.8738, 134.5641, 137.6667, 130.9250, 236.9907,~
igstats_plot <-
igstats %>%
mutate(day = fct_reorder(day, avglikes)) %>%
ggplot() +
geom_segment(aes(
x = 0,
xend = avglikes,
y = day,
yend = day
),
colour = "white",
linetype = "longdash"
) +
geom_point(
aes(avglikes, day, fill = is_weekend),
shape = "circle filled",
size = 18,
colour = "white",
show.legend = FALSE
) +
geom_text(
aes(avglikes, day, label = round(avglikes)),
colour = "white",
family = "Lacquer",
size = 7
) +
geom_text(
aes(x = 0, day, label = day),
colour = "white",
nudge_y = 0.15,
hjust = "left",
family = "Lacquer"
) +
geom_curve(
aes(
x = 185,
xend = 174,
y = 6.3,
yend = 6
),
colour = "white",
curvature = -0.3,
arrow = arrow(length = unit(0.1, "inches"), type = "closed")
) +
geom_curve(
aes(
x = 185,
xend = 230,
y = 6.8,
yend = 7.2
),
colour = "white",
curvature = -0.25,
arrow = arrow(length = unit(0.1, "inches"), type = "closed")
) +
annotate(
geom = "richtext",
x = 200,
y = 6.5,
label = "<span style='color:Blue'>Blue</span> is weekday,<br><span style='color:Green'>green</span> is weekend",
fill = NA,
label.colour = NA,
colour = "white",
family = "Lacquer",
size = 4
) +
annotate(
geom = "text",
x = 200,
y = 3,
label = "How many\nlikes did \nI get?",
colour = "white",
hjust = "center",
family = "Lacquer",
size = 15
) +
scale_fill_manual(values = c("Blue", "Green")) +
theme_void() +
theme(plot.background = element_rect(fill = "Black"))
igstats_plot## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database