Algoritma & Struktur Data
~ Tugas 6 ~
| Kontak | : \(\downarrow\) |
| sharon.edward@student.matanauniversity.ac.id | |
| Jurusan | Fisika Medis |
| RPubs | https://rpubs.com/sharongracia/ |
Visualisasi data merupakan sebuah teknik dalam memperoleh informasi suatu data ke dalam bentuk visual, seperti bagan, grafik, dan juga peta. Dengan ini, data jadi lebih mudah untuk dipahami oleh pembaca, serta dapat dengan mudah menemukan pola yang muncul dari kelompok data tersebut.
Univariant (Satu Variabel)
Visualisasi data ini biasa dgunakan untuk mendistribusi data dri satu variabel.
Variabel Kategori
Diagram Batang
Diagram batang menggunakan batang horizontal atau vertikal untuk menampilkan perbandingan antar kategori. Semakin panjang sebuah batang, maka semakin besar nilai yang diwakilinya.
Berikut ini adalah visualisasi pdiagram batang dari data zodiacs.
library(ggplot2) # bentuk visualisasi
#setwd("C:/Users/YEPRI/Desktop/") # atur working directory
Marriage <- read.csv("https://raw.githubusercontent.com/Bakti-Siregar/dataset/master/Bookdown-Data-Science-for-Beginners/Marriage.csv") # memanggil data
ggplot(Marriage, aes(x = zodiacs)) + # memplot pembagian data Zodiacs
geom_bar(fill = "cornflowerblue",
color = "azure4") + # mengganti warna diagram
theme_minimal() + # menggunakan tema
labs(x= "Zodiacs", # memberi label dan judul diagram
y= "Frequency",
title= "Marriage Participants by Zodiacs")Visualisasi diagram batang dengan frekuesi menggunakan persentase:
library(ggplot2)
ggplot(Marriage,
aes(x = zodiacs,
y = ..count.. / sum(..count..))) +
geom_bar(fill = rainbow(12),
color = "azure4") +
theme_minimal() +
labs(x = "Zodiacs",
y = "Frequency persent",
title = "Marriage Participant Frequency in Persent") +
scale_y_continuous(labels = scales::percent)Visualisai bentuk diagram batang dengan mengurutkan data dari yang terkecil hingga terbesar.
library(dplyr)##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
plotdata <- Marriage %>%
count(zodiacs)
ggplot(plotdata,
aes(x = reorder(zodiacs, n),
y = n)) +
geom_bar(stat = "identity",
fill = rainbow(12),
color = "azure4") +
theme_minimal() +
labs(x = "Zodiacs",
y = "Frequency",
title = "Sorting Marriage Participant")Visualisasi diagram batang dengan label nilai di setiap batangnya.
library(dplyr)
library(ggplot2)
library(scales)
plotdata <- Marriage %>%
count(zodiacs) %>%
mutate(pct = n / sum(n),
pctlabel = paste0(round(pct*100), "%"))
ggplot(plotdata,
aes(x = reorder(zodiacs, -pct),
y = pct)) +
geom_bar(stat = "identity",
fill = rainbow(12),
color = "azure4") +
geom_text(aes(label = pctlabel),
vjust = -0.25) +
theme_minimal() +
scale_y_continuous(labels = percent) +
labs(x = "Zodiacs",
y = "Percent",
title = "Marriage Participant with Labels")Visualisasi diagram batang dengan label pada sumbu x miring agar tidak bertumpuk-tumpuk.
library(ggplot2)
library(scales)
ggplot(plotdata,
aes(x = reorder(zodiacs, -pct),
y = pct)) +
geom_bar(stat = "identity",
fill = rainbow(12),
color = "azure4") +
geom_text(aes(label = pctlabel),
vjust = -0.25) +
scale_y_continuous(labels = percent) +
theme_minimal() +
labs(x = "Zodiacs",
y = "Percent",
title = "Marriage Participant with Overlapping Labels") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))Visualisasi diagram batang sumbu x dan sumbu y bertukar tempat.
library(ggplot2)
library(scales)
ggplot(plotdata,
aes(x = reorder(zodiacs, -pct),
y = pct)) +
geom_bar(stat = "identity",
fill = rainbow(12),
color = "azure4") +
geom_text(aes(label = pctlabel),
hjust = -0.10) +
theme_minimal() +
scale_y_continuous(labels = percent) +
labs(x = "Zodiacs",
y = "Percent",
title = "Marriage Participant with Overlapping Labels II") +
coord_flip()Diagram Pai
Diagram lingkaran atau yang sering juga disebut sebagai pie chart adalah salah satu jenis grafik yang digunakan untuk membandingkan statistik. Diagram lingkaran atau pie chart disebut demikian karena bentuknya adalah lingkaran dengan potongan-potongan yang menyerupai kue pie.
Berikut ini adalah bentuk visualisasi data menggunakan diagram pai.
library(dplyr)
library(ggplot2)
library(scales)
plotdata <- Marriage %>%
count(race) %>%
arrange(desc(race)) %>%
mutate(prop = round(n*100/sum(n),1),
lab.ypos = cumsum(prop) - 0.5*prop)
mycols <- c("#0073C2FF", "#EFC000FF", "#868686FF", "#CD534CFF")
ggplot(plotdata,
aes(x = "",
y = prop,
fill = race)) +
geom_bar(width = 1,
stat = "identity",
color = "white") +
coord_polar("y",
start = 0) +
geom_text(aes(y = lab.ypos,
label = prop),
color = "white") +
scale_fill_manual(values = mycols) +
theme_void() +
labs(title = "Marriage Participant by Race")Visualisasi data dengan diagram donat.
library(ggplot2)
library(scales)
ggplot(plotdata,
aes(x = 2,
y = prop,
fill = race)) +
geom_bar(stat = "identity",
color = "white") +
coord_polar(theta = "y",
start = 0) +
geom_text(aes(y = lab.ypos,
label = prop),
color = "white") +
scale_fill_manual(values = mycols) +
theme_void() +
xlim(0.5, 2.5) +
labs(title = "Marriage Participant by Race II")Visualisasi data dengan diagram donat dengan menambahkan label nama di dalamnya.
library(ggplot2)
library(scales)
plotdata$percent <- paste0(plotdata$race, "\n",
round(plotdata$prop), "%")
ggplot(plotdata, aes(x = 2,
y = prop,
fill = race)) +
geom_bar(stat = "identity",
color = "white") +
coord_polar(theta = "y",
start = 0) +
geom_text(aes(y = lab.ypos,
label = percent),
color = "white") +
scale_fill_manual(values = mycols) +
theme_void() +
xlim(0.5, 2.5) +
labs(title = "Marriage Participant by Race III")Peta Pohon
Peta pohon mampu menangani variabel kategorikal yang memiliki banyak tingkatan.
Berikut adalah visualisasi data dengan peta pohon:
library(ggplot2)
library(treemapify)## Warning: package 'treemapify' was built under R version 4.1.2
library(scales)
plotdata <- Marriage %>%
count(officialTitle)
ggplot(plotdata,
aes(fill = officialTitle,
area = n)) +
geom_treemap() +
labs(title = "Marriage Participant by Offciate")Bentuk visualisasi data dengan peta pohon dengan menambahkan label.
ggplot(plotdata,
aes(fill = officialTitle,
area = n,
label = officialTitle)) +
geom_treemap() +
geom_treemap_text(colour = "white",
place = "centre") +
labs(title = "Marriage Participant by Officiate II") +
theme(legend.position = "none")Variabel Kontinu
Histogram
Histogram merupakan tampilan bentuk grafis untuk menunjukkan distribusi data secara visual atau seberapa sering suatu nilai yang berbeda itu terjadi dalam suatu kumpulan data.
Berikut ini adalah bentuk visualisasi data dengan histogram.
library(ggplot2)
ggplot(Marriage, aes(x = age)) +
geom_histogram(fill = "cornflowerblue",
color = "white", bins = 20) +
theme_minimal() +
labs(title = "Marriage Participant by Age (Basic)",
x = "Age")Visualisasi data dalam persen menggunakan histogram.
library(ggplot2)
library(scales)
ggplot(Marriage,
aes(x = age,
y = ..count.. / sum(..count..))) +
geom_histogram(fill = "cornflowerblue",
color = "white",
binwidth = 5) +
theme_minimal() +
labs(title = "Marriage Participants by Age with Percent",
y = "Percent",
x = "Age") +
scale_y_continuous(labels = percent)Plot Densitas Kernel
Plot Densitas Kernel adalah metode non-parametik untuk memperkirakan fungsi densitas probabilitas dari variabel acak kontinu.
Berikut ini adalah visualisasi data dengan plot densitas kernel.
library(ggplot2)
ggplot(Marriage,
aes(x = age)) +
geom_density(fill = "indianred3") +
theme_minimal() +
labs(title = "Marriage Participant with Plot Densitas Kernel")Parameter Penghalus (Smoothing)
Berikut ini adalah bentuk visualisasi data dengan menambahkan parameter penghalus.
library(ggplot2)
bw.nrd0(Marriage$age)## [1] 5.181946
ggplot(Marriage,
aes(x = age)) +
geom_density(fill = "deepskyblue",
bw = 1) +
theme_minimal() +
labs(title = "Marriage Participant with Smoothing",
subtitle = "bandwidth = 1")Diagram Titik
Diagram titik adalah suatu gambaran untuk memperlihatkan atau menerangkan suatu data yang akan disajikan menggunakan titik-titik.
Berikut ini adalah visualisasi data dalam bentuk diagram titik.
library(ggplot2)
ggplot(Marriage,
aes(x = age)) +
geom_dotplot(fill = "gold",
color = "azure4",
binwidth = 2) +
theme_minimal() +
labs(title = "Marriage Participant with Dotplot",
y = "Proportion",
x = "Age")Data Bivariat
Kategorikal vs. Kategorikal
Diagram Batang Bertumpuk
Berikut ini adalah visualisasi data menggunakan diagram batang bertumpuk.
library(ggplot2)
mpg$drv <- factor(mpg$drv,
levels = c("f", "r", "4"),
labels = c("front-wheel", "rear-wheel", "4-wheel"))
ggplot(mpg,
aes(x = class,
fill = drv)) +
geom_bar(position = "fill") +
theme_minimal() +
labs(y = "Proportion")Diagram Batang yang dikelompokan
Berikut ini adalah visualisasi data menggunakan diagram batang yang dikelompokan:
library(ggplot2)
ggplot(mpg,
aes(x = class,
fill = drv)) +
theme_minimal() +
geom_bar(position = position_dodge(preserve = "single"))Diagram Batang tersegmentasi
berikut ini adalah visualisasi data menggunakan diagram batang tersegmentasi:
library(ggplot2)
library(dplyr)
library(scales)
plotdata <- mpg %>%
group_by(class,drv) %>%
dplyr::summarize(n = n()) %>%
mutate(pct = n/sum(n),
lbl = scales::percent(pct))## `summarise()` has grouped output by 'class'. You can override using the `.groups` argument.
ggplot(plotdata,
aes(x = factor(class),
y = pct,
fill = factor(drv))) +
geom_bar(stat = "identity",
position = "fill") +
scale_y_continuous(breaks = seq(0, 1, 2),
label = percent) +
geom_text(aes(label = lbl),
size = 3,
position = position_stack(vjust = 0.5)) +
scale_fill_brewer(palette = "Set2") +
theme_minimal() +
labs(y = "Percent",
fill = "Drive Train",
x = "Class",
title = "Automobile Drive by Class")Plot Mosaik
Berikut ini adalah bentuk visualisasi data denagan plot mosaik:
tbl <- xtabs(Freq ~ Survived + Class + Sex, Titanic)
ftable(tbl)## Sex Male Female
## Survived Class
## No 1st 118 4
## 2nd 154 13
## 3rd 422 106
## Crew 670 3
## Yes 1st 62 141
## 2nd 25 93
## 3rd 88 90
## Crew 192 20
library(vcd)## Warning: package 'vcd' was built under R version 4.1.2
## Loading required package: grid
mosaic(tbl, main = "Titanic Data")Visualisasi data dengan menambahkan warna kedalam plot mosaik:
mosaic(tbl,
shade = TRUE,
legend = TRUE,
labeling_args = list(set_varnames = c(Sex = "Gender",
Survived = "Survived",
Class = "Passenger Class")),
set_labels = list(Survived = c("No", "Yes"),
Class = c("1st", "2nd", "3rd", "Crew"),
Sex = c("F", "M")),
main = "Titanic Data II")Kontinu vs. Kontinu
Plot Sebaran
Berikut ini adalah bentuk visualisasi data menggunakan pola - pola dalam plot sebaran:
#Visualisasi Data
library(ggplot2)
#Untuk Tema
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
#Membuat Data
d1 <- data.frame(x = seq(1,100),
y = rnorm(100),
name = "No Trend")
d2 <- d1 %>%
mutate(y = x*10 + rnorm(100,sd = 60)) %>%
mutate(name = "Linear Relationship")
d3 <- d1 %>%
mutate(y = x^2 + rnorm(100, sd = 140)) %>%
mutate(name = "Square")
d4 <- data.frame(x = seq(1, 10, 0.1),
y = sin(seq(1, 10, 0.1)) +
rnorm(91, sd = 0.6)) %>%
mutate(name = "Sin")
don <- do.call(rbind, list(d1, d2, d3, d4))
#Membuat Plot
don %>%
ggplot(aes(x=x, y=y)) +
geom_point(color="#69b3a2", alpha = 0.8) +
theme_ipsum() +
facet_wrap(~name, scale="free")## 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_stringMetric, as.graphicsAnnot(x$label)): 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.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## font family not found in Windows font database
library(ggplot2)
library(scales)
data(Salaries, package="carData")
#Membuat Plot Sebaran
ggplot(Salaries,
aes(x = yrs.since.phd,
y = salary)) +
geom_point(color="cornflowerblue",
size = 2,
alpha = .8) +
scale_y_continuous(labels = scales::dollar,
limits = c(50000, 250000)) +
scale_x_continuous(breaks = seq(0, 60, 10),
limits = c(0, 60)) +
theme_minimal() +
labs(x = "Years Since PhD",
Y = "",
title = "Experience and Salary",
subtitle = "9-month salary for 2008-2009")Plot Sebaran Menyesuaikan Garis
Berikut ini adalah bentuk visualisasi data dengan plot sebarang menyesuaikan garis:
library(ggplot2)
ggplot(Salaries,
aes(x= yrs.since.phd,
y= salary)) +
geom_point(color="cornflowerblue") +
geom_smooth(method = "lm", color = "brown1") +
theme_minimal() +
labs(x = "Years Since PhD",
Y = "",
title = "Experience and Salary",
subtitle = "9-month salary for 2008-2009")## `geom_smooth()` using formula 'y ~ x'
Plot sebaran menyesuaikan garis dengan garis kuadrat (satu lengkungan):
library(ggplot2)
ggplot(Salaries,
aes(x= yrs.since.phd,
y= salary)) +
geom_point(color="cornflowerblue") +
geom_smooth(method = "lm",
formula = y ~ poly(x,2),
color = "yellow") +
theme_minimal() +
labs(x = "Years Since PhD",
Y = "",
title = "Experience and Salary",
subtitle = "9-month salary for 2008-2009")Penghalusan plot sebaran:
library(ggplot2)
ggplot(Salaries,
aes(x = yrs.since.phd,
y=salary)) +
geom_point(color="cornflowerblue",
size=2,
alpha=1) +
geom_smooth(size=1,
color="green") +
scale_y_continuous(label=scales::dollar,
limits=c(50000,250000)) +
scale_x_continuous(breaks=seq(0,60,10),
limits=c(0,60)) +
theme_minimal()## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
Kategorikal vs. Kontinu
Diagram Batang (Ringkasan Statistik)
Berikut ini adalah bentuk visualisasi data menggunakan diagram batang:
library(dplyr)
library(ggplot2)
library(scales)
data(Salaries, package="carData")
plotdata<-Salaries %>%
group_by(rank) %>%
dplyr::summarise(mean_salary = mean(salary))
mycols <- c("#CD534CFF", "#EFC000FF", "#0073C2FF")
ggplot(plotdata,
aes(x=factor(rank,
labels=c("Assistant\nProfessor",
"Associate\nProfessor",
"Full\nProfessor")),
y=mean_salary)) +
geom_bar(stat="identity",
fill=mycols) +
geom_text(aes(label=dollar(mean_salary)),
vjust=-0.25) +
scale_y_continuous(breaks=seq(0,130000,20000),
label=dollar) +
theme_minimal() +
labs(title = "Mean Salary by Rank",
subtitle = "9-month academic salary for 2008-2009",
x ="",
y ="")Plot Densitas Kernel yang Dikelompokan
Berikut ini adalah bentuk visualisasi data menggunakan pengelompokan plot densitas kernel:
ggplot(Salaries,
aes(x=salary,
fill=rank)) +
geom_density(alpha=0.4) +
theme_minimal() +
labs(title="Salary Distribution by Rank")Boxplot
Berikut ini adalah bentuk visualisasi data dengan boxplot:
mycols <- c("#CD534CFF", "#EFC000FF", "#0073C2FF")
ggplot(Salaries, aes(x=rank,
y=salary)) +
geom_boxplot(notch = TRUE,
fill = mycols,
alpha = .7) +
theme_minimal() +
labs(title = "Salary Distribution by Rank II")Plot Biola
Berikut ini merupakan bentuk visulisasi data menggunakan plot biola:
ggplot(Salaries,
aes(x=rank,
y=salary)) +
geom_violin(fill="azure1") +
geom_boxplot(width=.2,
fill=mycols,
outlier.color="red",
outlier.size=2) +
theme_minimal() +
labs(title="Salary Distribution by Rank III")Plot Garis Punggung
Berikut ini adalah bentuk visualisasi data menggunakan plot garis punggung:
library(dplyr)
library(ggplot2)
library(ggridges)
ggplot(mpg,
aes(x=cty,
y=class,
fill=class)) +
geom_density_ridges(alpha=0.7) +
theme_ridges() +
labs("Highway Mileage by Auto Class") +
theme(legend.position="none")## Picking joint bandwidth of 0.929
Plot Garis
Berikut ini adalah vidualisasi data menggunakan plot garis:
library(dplyr)
library(ggplot2)
library(ggridges)
plotdata <- Salaries %>%
group_by(rank,sex) %>%
dplyr::summarize(n=n(),
mean=mean(salary),
sd=sd(salary),
se=sd/sqrt(n),
ci=qt(0.975, df=n-1)*sd/sqrt(n))## `summarise()` has grouped output by 'rank'. You can override using the `.groups` argument.
pd <- position_dodge(0.2)
ggplot(plotdata,
aes(x=factor(rank,
labels=c("Assistant\nProfessor",
"Associate\nProfessor",
"Full\nProfessor")),
y=mean,
group=sex,
color=sex)) +
geom_point(position=pd,
size=3) +
geom_line(position=pd,
size=1) +
geom_errorbar(aes(ymin=mean-se,
ymax=mean+se),
width= .1,
position = pd,
size=1) +
scale_y_continuous(label=scales::dollar) +
scale_color_brewer(palette="Set1") +
theme_minimal() +
labs(title = "Mean Salary by Rank and Sex",
subtitle="(mean +/- standard error)",
x="",
y="",
color="Gender")Plot Strip
Berikut ini adalah bentuk visualisasi data menggunakan plot strip:
library(ggplot2)
library(scales)
ggplot(Salaries,
aes(y=factor(rank,
labels=c("Assistant\nProfessor",
"Associate\nProfessor",
"Full\nProfessor")),
x=salary,
color=rank)) +
geom_jitter(alpha=0.7,
size=1.5) +
scale_x_continuous(label=dollar) +
labs(title="Academic Salary by Rank",
subtitle="9-month salary for 2008-2009",
x="",
y="") +
theme_minimal() +
theme(legend.position="none")Gabungan Jitter dan Plot Kotak
Berikut ini adalah bentuk visualisasi data menggunakan gabungan jitter dan plot kotak:
library(ggplot2)
library(scales)
ggplot(Salaries,
aes(x=factor(rank,
labels=c("Assistant\nProfessor",
"Associate\nProfessor",
"Full\nProfessor")),
y=salary,
color=rank)) +
geom_boxplot(size=1,
outlier.shape=1,
outlier.color="black",
outlier.size=3) +
geom_jitter(alpha=0.5,
width=.2) +
scale_y_continuous(label=dollar) +
labs(title="Academic Salary by Rank",
subtitle="9-month salary for 2008-2009",
x="",
y="") +
theme_minimal() +
theme(legend.position ="none") +
coord_flip()Visualisasi data dengan plot kotak hibrida-setengah plot kotak, setengah plot sebaran:
library(ggplot2)
library(scales)
library(ggpol)## Warning: package 'ggpol' was built under R version 4.1.2
ggplot(Salaries,
aes(x=factor(rank,
labels=c("Assistant\nProfessor",
"Associate\nProfessor",
"Full\nProfessor")),
y=salary,
fill=rank)) +
geom_boxjitter(color="black",
jitter.color="darkgrey",
errorbar.draw=TRUE) +
scale_y_continuous(label=dollar) +
labs(title="Academic Salary by Rank",
subtitle="9-month salary for 2008-2009",
x="",
y="") +
theme_minimal() +
theme(legend.position = "none")Plot Kawanan Lebah
Berikut ini adalah visualisasi data menggunakan plot kawanan lebah:
library(ggplot2)
library(scales)
library(ggbeeswarm)## Warning: package 'ggbeeswarm' was built under R version 4.1.2
ggplot(Salaries,
aes(x=factor(rank,
labels=c("Assistant\nProfessor",
"Associate\nProfessor",
"Full\nProfessor")),
y=salary,
color=rank)) +
geom_quasirandom(alpha=0.7,
size=1.5) +
scale_y_continuous(label=dollar) +
labs(title="Academic Salary by Rank",
subtitle="9-month salary for 2008-2009",
x="",
y="") +
theme_minimal() +
theme(legend.position = "none")Diagram Titik Cleveland
Berikut ini adalah visualisasi data menggunakan diagram titik cleveland:
library(dplyr)
library(ggplot2)
library(scales)
library(ggbeeswarm)
library(gapminder)## Warning: package 'gapminder' was built under R version 4.1.2
data(gapminder, package="gapminder")
library(dplyr)
plotdata <- gapminder %>%
filter(continent == "Asia" &
year == 2007)
ggplot(plotdata,
aes(x=lifeExp,
y=reorder(country, lifeExp))) +
geom_point(color="blue",
size = 2) +
geom_segment(aes(x = 40,
xend = lifeExp,
y = reorder(country, lifeExp),
yend = reorder(country, lifeExp)),
color = "azure3") +
labs (x = "Life Expectancy (years)",
y = "",
title = "Life Expectancy by Country",
subtitle = "GapMinder data for Asia - 2007") +
theme_minimal() +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank())Data Multivariat
Pengelompokan
1
library(carData)
library(ggplot2)
data(Salaries, package="carData")
ggplot(Salaries, aes(x=yrs.since.phd,
y=salary,
color=rank)) +
geom_point() +
theme_minimal() +
labs(title = "Academic salary by Rank and Years Since Degree")2
library(carData)
library(ggplot2)
ggplot(Salaries, aes(x=yrs.since.phd,
y=salary,
color=rank,
shape=sex)) +
geom_point(size=3,
alpha=.6) +
theme_minimal() +
labs(title = "Academic salary by Rank and Years Since Degree")3
library(carData)
library(ggplot2)
ggplot(Salaries, aes(x=yrs.since.phd,
y=salary,
color=rank,
size=yrs.service)) +
geom_point(alpha=.8) +
theme_minimal() +
labs(title = "Academic salary by Rank and Years Since Degree")4
library(carData)
library(ggplot2)
ggplot(Salaries, aes(x=yrs.since.phd,
y=salary,
color=sex)) +
geom_point(alpha=.4,
size=3) +
geom_smooth(se=FALSE,
method="lm",
formula = y~poly(x,2),
size=1.5) +
theme_minimal() +
labs(x="Years Since Ph.D.",
title = "Academic salary by Sex and Years Experience",
y="",
color="Sex") +
scale_y_continuous(label=scales::dollar) +
scale_color_brewer(palette="Set1")Pembagian Faset (Faceting)
1
library(carData)
library(ggplot2)
ggplot(Salaries, aes(x=salary)) +
geom_histogram(fill="cornflowerblue",
color="white") +
facet_wrap(~rank, ncol=1) +
theme_minimal() +
labs(title="Salary Histograms by Rank")## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
2
library(carData)
library(ggplot2)
ggplot(Salaries, aes(x=salary/1000)) +
geom_histogram(fill="cornflowerblue",
color="white") +
facet_grid(sex~rank) +
theme_minimal() +
labs(title="Salary Histograms by Rank and Sex",
x="Salary ($1000)")## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
3
library(carData)
library(ggplot2)
library(dplyr)
plotdata <- Salaries %>%
group_by(sex,rank,discipline) %>%
dplyr::summarize(n=n(),
mean=mean(salary),
sd=sd(salary),
se=sd/sqrt(n))## `summarise()` has grouped output by 'sex', 'rank'. You can override using the `.groups` argument.
plotdata$discipline <- factor(plotdata$discipline,
labels=c("Theoretical",
"Applied"))
ggplot(plotdata,
aes(x=sex,
y=mean,
color=sex)) +
geom_point(size=3) +
geom_errorbar(aes(ymin=mean-se,
ymax=mean+se),
width=.1) +
scale_y_continuous(breaks = seq(70000,140000,10000),
label=scales::dollar) +
facet_grid(.~rank+discipline) +
theme_bw() +
theme(legend.position = "none",
panel.grid.major.x = element_blank(),
panel.grid.minor.y = element_blank()) +
labs(x="",
y="",
title = "Nine Month Academic Salaries by Gender, Discipline, and Rank",
subtitle="(Means and Standard Errors)") +
scale_color_brewer(palette="Set1")4
library(gapminder)
library(ggplot2)
library(dplyr)
#memplot harapan hidup berdasarkan tahun secara terpisah
#untuk setiap negara di Asia
data(gapminder, package="gapminder")
#pilih data Asia
plotdata<- dplyr::filter(gapminder,
continent =="Asia")
#memplot harapan hidup
ggplot(plotdata,
aes(x=year,
y=lifeExp)) +
geom_line(color="grey") +
geom_point(color="blue") +
facet_wrap(~country) +
theme_minimal(base_size=9) +
theme(axis.text.x=element_text(angle=45,
hjust=1)) +
labs(title="Changes in Life Expectancy",
x="Year",
y="Life Expectancy")