### Judul Tugas: Belajar Statistika dengan R - Bab 3
### nama: Diva Lathifah Zain ###
### nim: 2502056042 ###
### matkul: statistik sosial ###
### output: html_document ###
# BAB 3
# MENYAJIKAN DATA DALAM GRAFIK
# Package ggplot2 digunakan pada beberapa contoh dalam guidebook.
# Jika belum terpasang, R akan memasangnya terlebih dahulu.
library(ggplot2)
knitr::opts_chunk$set(
echo = TRUE,
warning = FALSE,
message = FALSE
)
# 1. Memplot Data dalam R (Scatter Plot)
data3.1 <- data.frame(
jeniskelamin = c(
rep("laki-laki", 10),
rep("perempuan", 10)
),
pendapatan = c(
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
),
pengeluaran = c(
0.5, 0.9, 1.1, 2.0, 4.0, 5.0, 6.2, 5.5, 5.0, 4.5,
0.7, 1.4, 2.8, 3.3, 4.3, 5.0, 6.7, 5.9, 5.7, 8.0
)
)
write.csv(data3.1, "data3.1.csv", row.names = FALSE)
simpan = read.table(
"data3.1.csv",
header = TRUE,
sep = ","
)
simpan
## jeniskelamin pendapatan pengeluaran
## 1 laki-laki 1 0.5
## 2 laki-laki 2 0.9
## 3 laki-laki 3 1.1
## 4 laki-laki 4 2.0
## 5 laki-laki 5 4.0
## 6 laki-laki 6 5.0
## 7 laki-laki 7 6.2
## 8 laki-laki 8 5.5
## 9 laki-laki 9 5.0
## 10 laki-laki 10 4.5
## 11 perempuan 1 0.7
## 12 perempuan 2 1.4
## 13 perempuan 3 2.8
## 14 perempuan 4 3.3
## 15 perempuan 5 4.3
## 16 perempuan 6 5.0
## 17 perempuan 7 6.7
## 18 perempuan 8 5.9
## 19 perempuan 9 5.7
## 20 perempuan 10 8.0
plot(
simpan[2:3],
main = "Pendapatan dan Pengeluaran per-Bulan, dalam Jutaan Rupiah"
)

Pendapatan = simpan$pendapatan
Pengeluaran = simpan$pengeluaran
plot(Pendapatan, Pengeluaran)

PENDAPATAN = simpan$pendapatan
PENGELUARAN = simpan$pengeluaran
qplot(
PENDAPATAN,
PENGELUARAN,
main = "Pendapatan dan Pengeluaran per-Bulan, dalam Jutaan",
xlab = "Pendapatan per-Bulan",
ylab = "Pengeluaran per-Bulan"
)
## Warning: `qplot()` was deprecated in ggplot2 3.4.0.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

ggplot(simpan, aes(pendapatan, pengeluaran)) +
geom_point(aes(color = jeniskelamin, shape = jeniskelamin))

grafik <- ggplot(
simpan,
aes(pendapatan, pengeluaran)
) +
geom_point(
aes(color = jeniskelamin, shape = jeniskelamin)
)
grafik

grafik +
scale_colour_manual(
values = c("blue", "orange")
)

grafik +
scale_shape_manual(
values = c(16, 5)
)

grafik +
scale_colour_manual(
values = c("blue", "orange")
) +
scale_shape_manual(
values = c(5, 5)
)

grafik +
facet_grid(. ~ jeniskelamin)

grafik +
facet_grid(. ~ jeniskelamin) +
scale_colour_manual(
values = c("blue", "orange")
)

grafik +
geom_vline(xintercept = 2.5)

grafik +
geom_vline(xintercept = 2.5) +
geom_vline(xintercept = 5)

grafik +
geom_vline(xintercept = 1:5)

grafik +
geom_vline(
xintercept = c(2.5, 5, 7.5)
)

grafik +
geom_vline(
xintercept = c(2.5, 5, 7.5),
colour = "green",
linetype = "longdash"
)

grafik +
geom_vline(
xintercept = c(2.5, 5, 7.5),
colour = "green",
linetype = "longdash"
) +
geom_hline(
yintercept = c(2, 4, 6),
colour = "red",
linetype = "longdash"
)

# 2. Menyajikan Data dengan Grafik Garis
data3.2 <- data.frame(
tahun = 2001:2007,
jenis.barang.A = c(90, 110, 115, 130, 140, 155, 160),
jenis.barang.B = c(85, 90, 105, 110, 120, 125, 130),
jenis.barang.C = c(50, 55, 60, 65, 75, 80, 85)
)
write.csv(data3.2, "data3.2.csv", row.names = FALSE)
simpan = read.table(
"data3.2.csv",
header = TRUE,
sep = ","
)
simpan
## tahun jenis.barang.A jenis.barang.B jenis.barang.C
## 1 2001 90 85 50
## 2 2002 110 90 55
## 3 2003 115 105 60
## 4 2004 130 110 65
## 5 2005 140 120 75
## 6 2006 155 125 80
## 7 2007 160 130 85
Tahun = simpan$tahun
Jumlah_A = simpan$jenis.barang.A
Jumlah_B = simpan$jenis.barang.B
Jumlah_C = simpan$jenis.barang.C
plot(Tahun, Jumlah_A)

plot(
Tahun,
Jumlah_A,
type = "o",
col = "red"
)

plot(
Tahun,
Jumlah_A,
type = "o",
col = "red",
ylim = c(40, 180)
)
lines(
Tahun,
Jumlah_B,
type = "o",
col = "blue"
)
lines(
Tahun,
Jumlah_C,
type = "o",
col = "green"
)

plot(
Tahun,
Jumlah_A,
type = "o",
pch = 22,
lty = 2,
col = "red",
ylim = c(40, 180)
)
lines(
Tahun,
Jumlah_B,
type = "o",
pch = 22,
lty = 2,
col = "blue"
)
lines(
Tahun,
Jumlah_C,
type = "o",
pch = 22,
lty = 2,
col = "green"
)

plot(
Tahun,
Jumlah_A,
type = "p",
pch = 22,
lty = 2,
col = "red",
ylim = c(40, 180)
)
lines(
Tahun,
Jumlah_B,
type = "p",
pch = 22,
lty = 2,
col = "blue"
)
lines(
Tahun,
Jumlah_C,
type = "p",
pch = 22,
lty = 2,
col = "green"
)

plot(
Tahun,
Jumlah_A,
type = "o",
col = "red",
ylim = c(40, 180)
)
lines(
Tahun,
Jumlah_B,
type = "o",
col = "blue"
)
lines(
Tahun,
Jumlah_C,
type = "o",
col = "green"
)
title(
main = "Data Penjualan Barang A, B, C, dari Tahun 2001-2007",
col.main = "red",
font.main = 4
)

plot(
Tahun,
Jumlah_A,
type = "o",
col = "red",
ylim = c(40, 180)
)
lines(
Tahun,
Jumlah_B,
type = "o",
col = "blue"
)
lines(
Tahun,
Jumlah_C,
type = "o",
col = "green"
)
legend(
2001,
160,
c(
"Jenis Barang A",
"Jenis Barang B",
"Jenis Barang C"
),
cex = 0.8,
col = c("red", "blue", "green"),
pch = 21
)
title(
main = "Penjualan Barang A, B, C, dari Tahun 2001-2007",
col.main = "red",
font.main = 4
)

plot(
Tahun,
Jumlah_A,
type = "o",
col = "red",
ylim = c(40, 180)
)
lines(
Tahun,
Jumlah_B,
type = "o",
col = "blue",
lty = 2
)
lines(
Tahun,
Jumlah_C,
type = "o",
col = "green",
lty = 2
)
legend(
2001,
160,
c(
"Jenis Barang A",
"Jenis Barang B",
"Jenis Barang C"
),
cex = 0.8,
col = c("red", "blue", "green"),
lty = 1:3
)
title(
main = "Penjualan Barang A, B, C, dari Tahun 2001-2007",
col.main = "red",
font.main = 4
)

# 3. Menyajikan Data dengan Grafik Batang (Bagian Pertama)
data3.3 <- data.frame(
tahun = 2001:2007,
jenis.barang.A = c(90, 110, 115, 130, 140, 155, 160)
)
write.csv(data3.3, "data3.3.csv", row.names = FALSE)
simpan = read.table(
"data3.3.csv",
header = TRUE,
sep = ","
)
simpan
## tahun jenis.barang.A
## 1 2001 90
## 2 2002 110
## 3 2003 115
## 4 2004 130
## 5 2005 140
## 6 2006 155
## 7 2007 160
Tahun = simpan$tahun
Jumlah_A = simpan$jenis.barang.A
barplot(
Jumlah_A,
Tahun
)

barplot(
Jumlah_A,
Tahun,
main = "Penjualan Barang Jenis A dari Tahun 2001-2007",
xlab = "Tahun",
ylab = "Jumlah Barang yang Terjual",
names.arg = c(
"2001",
"2002",
"2003",
"2004",
"2005",
"2006",
"2007"
)
)

barplot(
Jumlah_A,
Tahun,
main = "Penjualan Barang Jenis A dari Tahun 2001-2007",
xlab = "Tahun",
ylab = "Jumlah Barang yang Terjual",
names.arg = c(
"2001",
"2002",
"2003",
"2004",
"2005",
"2006",
"2007"
),
border = "blue"
)

barplot(
Jumlah_A,
Tahun,
main = "Penjualan Barang Jenis A dari Tahun 2001-2007",
xlab = "Tahun",
ylab = "Jumlah Barang yang Terjual",
names.arg = c(
"2001",
"2002",
"2003",
"2004",
"2005",
"2006",
"2007"
),
border = "red"
)

ggplot(
data = simpan,
aes(x = Tahun, y = Jumlah_A)
) +
geom_bar(stat = "identity")

ggplot(
data = simpan,
aes(x = Tahun, y = Jumlah_A)
) +
geom_bar(
stat = "identity",
fill = "darkblue"
)

ggplot(
data = simpan,
aes(x = Tahun, y = Jumlah_A)
) +
geom_bar(
stat = "identity",
fill = heat.colors(7)
)

# 4. Menyajikan Data dengan Grafik Batang (Bagian Kedua)
data3.4 <- data.frame(
Jenis.Kelamin = c(
"Laki-Laki",
"Laki-Laki",
"Perempuan",
"Perempuan"
),
Hobi = c(
"Olahraga",
"Memasak",
"Olahraga",
"Memasak"
),
Jumlah = c(90, 10, 25, 75)
)
write.csv(data3.4, "data3.4.csv", row.names = FALSE)
simpan = read.table(
"data3.4.csv",
header = TRUE,
sep = ","
)
simpan
## Jenis.Kelamin Hobi Jumlah
## 1 Laki-Laki Olahraga 90
## 2 Laki-Laki Memasak 10
## 3 Perempuan Olahraga 25
## 4 Perempuan Memasak 75
frekuensi = c(90, 10, 25, 75)
barplot(
t(
matrix(
frekuensi,
ncol = 2,
byrow = TRUE,
dimnames = list(
c("Laki-Laki", "Perempuan"),
c("Olahraga", "Memasak")
)
)
),
main = "Hubungan antara Jenis Kelamin dan Hobi",
xlab = "Jenis Kelamin",
col = c("darkblue", "orange"),
beside = TRUE,
ylim = c(0, 150),
legend.text = TRUE,
args.legend = list(x = "topright")
)

frekuensi2 = c(2, 12, 16, 6)
barplot(
frekuensi2,
ylim = c(0, 20),
main = "Jumlah Mahasiswa yang Memperoleh Nilai A, B, C, dan D, untuk Matakuliah Matematika 1",
names.arg = c("A", "B", "C", "D"),
ylab = "Jumlah Mahasiswa",
xlab = "Nilai Mahasiswa",
cex.names = 0.8,
col = c("green", "yellow", "orange", "red")
)

dat = data.frame(
jenis_kelamin = factor(
c("Laki-Laki", "Perempuan"),
levels = c("Laki-Laki", "Perempuan")
),
total = c(20, 70)
)
dat
## jenis_kelamin total
## 1 Laki-Laki 20
## 2 Perempuan 70
ggplot(
data = dat,
aes(x = jenis_kelamin, y = total)
) +
geom_bar(stat = "identity")

ggplot(
data = dat,
aes(
x = jenis_kelamin,
y = total,
fill = jenis_kelamin
)
) +
geom_bar(stat = "identity")

ggplot(
data = dat,
aes(
x = jenis_kelamin,
y = total,
fill = jenis_kelamin
)
) +
geom_bar(stat = "identity") +
guides(fill = "none")

ggplot(
data = dat,
aes(
x = jenis_kelamin,
y = total,
fill = jenis_kelamin
)
) +
geom_bar(stat = "identity") +
xlab("Jenis Kelamin") +
ylab("Jumlah Mahasiswa") +
ggtitle("Universitas XYZ")

dat = data.frame(
jenis_kelamin = factor(
c(
"Laki-Laki",
"Laki-Laki",
"Perempuan",
"Perempuan"
)
),
hobi = factor(
c(
"Olahraga",
"Memasak",
"Olahraga",
"Memasak"
),
levels = c("Olahraga", "Memasak")
),
total = c(80, 20, 40, 60)
)
dat
## jenis_kelamin hobi total
## 1 Laki-Laki Olahraga 80
## 2 Laki-Laki Memasak 20
## 3 Perempuan Olahraga 40
## 4 Perempuan Memasak 60
ggplot(
data = dat,
aes(
x = hobi,
y = total,
fill = jenis_kelamin
)
) +
geom_bar(stat = "identity") +
xlab("Hobi Mahasiswa") +
ylab("Jumlah Mahasiswa") +
ggtitle("Universitas XYZ") +
geom_text(
aes(
y = total / 1.3,
label = total
),
position = "stack"
)

ggplot(
data = dat,
aes(
x = hobi,
y = total,
fill = jenis_kelamin
)
) +
geom_bar(
stat = "identity",
position = position_dodge()
) +
xlab("Hobi Mahasiswa") +
ylab("Jumlah Mahasiswa") +
ggtitle("Universitas XYZ")

ggplot(
data = dat,
aes(
x = hobi,
y = total,
fill = jenis_kelamin
)
) +
geom_bar(
stat = "identity",
position = position_dodge()
) +
xlab("Hobi Mahasiswa") +
ylab("Jumlah Mahasiswa") +
ggtitle("Universitas XYZ") +
geom_text(
aes(
y = total / 4,
label = total
),
position = position_dodge(width = 1)
)

# 5. Menyajikan Data dengan Diagram Lingkaran
data3.5 <- data.frame(
Produk = c("A", "B", "C", "D"),
Jumlah = c(12, 5, 8, 20)
)
write.csv(data3.5, "data3.5.csv", row.names = FALSE)
simpan = read.table(
"data3.5.csv",
header = TRUE,
sep = ","
)
simpan
## Produk Jumlah
## 1 A 12
## 2 B 5
## 3 C 8
## 4 D 20
pie(
simpan$Jumlah,
labels = simpan$Produk,
main = "Data Penjualan Produk A, B, C, dan D"
)

pie(
simpan$Jumlah,
labels = simpan$Produk,
main = "Data Penjualan Produk A, B, C, dan D",
col = heat.colors(4)
)
colors = heat.colors(4)
legend(
1,
0.5,
c(
"Produk A",
"Produk B",
"Produk C",
"Produk D"
),
cex = 0.8,
fill = colors
)

colors = c(
"darkblue",
"orange",
"yellow",
"red"
)
pie(
simpan$Jumlah,
labels = simpan$Jumlah,
main = "Data Penjualan Produk A, B, C, dan D",
col = colors
)
legend(
1,
0.5,
c(
"Produk A",
"Produk B",
"Produk C",
"Produk D"
),
cex = 0.8,
fill = colors
)

Persen = round(
simpan$Jumlah / sum(simpan$Jumlah) * 100,
4
)
Persen = paste0(Persen, "%")
pie(
simpan$Jumlah,
labels = Persen,
main = "Data Penjualan Produk A, B, C, dan D",
col = c(
"darkblue",
"orange",
"yellow",
"red"
)
)
colors = c(
"darkblue",
"orange",
"yellow",
"red"
)
legend(
1,
0.5,
c(
"Produk A",
"Produk B",
"Produk C",
"Produk D"
),
cex = 0.8,
fill = colors
)

# 6. Menyajikan Data dengan Histogram
IQ = c(
111, 111, 111, 111, 111, 111, 111,
110, 110, 110, 110, 110, 110, 110,
112, 112, 112, 112, 112, 112, 112,
113, 113,
113, 114, 114, 114,
115, 115, 115, 115,
116, 116,
117,
90,
91,
92, 92,
93, 93, 93,
94, 94, 94, 94,
95, 95, 95, 95, 95,
96, 96, 96, 96,
97, 97, 97, 97, 97, 97,
98, 98, 98,
101, 101, 101,
102, 102,
103,
104,
103,
102,
108,
109,
118
)
IQ_data = data.frame(IQ = IQ)
write.csv(
IQ_data,
"IQ.csv",
row.names = FALSE
)
simpan = read.csv(
"IQ.csv",
header = TRUE
)
simpan
## IQ
## 1 111
## 2 111
## 3 111
## 4 111
## 5 111
## 6 111
## 7 111
## 8 110
## 9 110
## 10 110
## 11 110
## 12 110
## 13 110
## 14 110
## 15 112
## 16 112
## 17 112
## 18 112
## 19 112
## 20 112
## 21 112
## 22 113
## 23 113
## 24 113
## 25 114
## 26 114
## 27 114
## 28 115
## 29 115
## 30 115
## 31 115
## 32 116
## 33 116
## 34 117
## 35 90
## 36 91
## 37 92
## 38 92
## 39 93
## 40 93
## 41 93
## 42 94
## 43 94
## 44 94
## 45 94
## 46 95
## 47 95
## 48 95
## 49 95
## 50 95
## 51 96
## 52 96
## 53 96
## 54 96
## 55 97
## 56 97
## 57 97
## 58 97
## 59 97
## 60 97
## 61 98
## 62 98
## 63 98
## 64 101
## 65 101
## 66 101
## 67 102
## 68 102
## 69 103
## 70 104
## 71 103
## 72 102
## 73 108
## 74 109
## 75 118
simpan_skor_IQ = simpan$IQ
hist(simpan_skor_IQ)

hist(
simpan_skor_IQ,
col = "lightblue"
)

hist(
simpan_skor_IQ,
col = "darkblue",
ylim = c(0, 40),
main = "Contoh Histogram",
ylab = "Frekuensi"
)

hist(
simpan_skor_IQ,
col = "orange",
ylim = c(0, 40),
main = "Contoh Histogram",
ylab = "Frekuensi",
breaks = c(90, 100, 110, 120)
)

hist(
simpan_skor_IQ,
col = heat.colors(6),
ylim = c(0, 30),
main = "Contoh Histogram",
ylab = "Frekuensi",
breaks = c(
90, 95, 100, 105, 110, 115, 120
),
xlim = c(90, 125)
)

hist(
simpan_skor_IQ,
col = heat.colors(6),
ylim = c(0, 30),
main = "Contoh Histogram",
ylab = "Frekuensi",
breaks = c(
90, 93, 96, 99, 102,
105, 108, 111, 114,
117, 120
),
xlim = c(90, 125)
)

hist(
simpan_skor_IQ,
breaks = 6,
col = heat.colors(6),
ylim = c(0, 30),
main = "Contoh Histogram",
ylab = "Frekuensi",
xlim = c(90, 125)
)

hist(
simpan_skor_IQ,
breaks = c(90, 117, 120),
ylim = c(0, 50),
xlim = c(90, 125),
main = "Contoh Histogram",
col = heat.colors(2)
)

hist(
simpan_skor_IQ,
breaks = c(90, 117, 120),
ylim = c(0, 80),
xlim = c(90, 125),
main = "Contoh Histogram",
col = heat.colors(2),
freq = TRUE
)
## Warning in plot.histogram(r, freq = freq1, col = col, border = border, angle =
## angle, : the AREAS in the plot are wrong -- rather use 'freq = FALSE'

hist(
simpan_skor_IQ,
breaks = c(90, 92, 97, 117, 120),
ylim = c(0, 80),
xlim = c(90, 125),
main = "Contoh Histogram",
col = heat.colors(4),
freq = TRUE
)
## Warning in plot.histogram(r, freq = freq1, col = col, border = border, angle =
## angle, : the AREAS in the plot are wrong -- rather use 'freq = FALSE'

ggplot(
data = simpan,
aes(IQ)
) +
geom_histogram(
breaks = c(
90, 95, 100, 105,
110, 115, 120
),
col = "darkblue",
fill = heat.colors(6)
)

ggplot(
data = simpan,
aes(IQ)
) +
geom_histogram(
breaks = c(
90, 95, 100, 105,
110, 115, 120
),
col = "red",
aes(fill = after_stat(count))
) +
labs(
title = "Contoh Histogram",
x = "IQ",
y = "Jumlah"
) +
xlim(c(90, 125)) +
ylim(c(0, 20))
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_bar()`).

scale_fill_gradient(
"count",
low = "green",
high = "red"
)
## <ScaleContinuous>
## Range:
## Limits: 0 -- 1
### SELESAIIIIIIIIII. Bab 3 Statistik is DONEEE ####