### MEMPLOT DATA DALAM R (SCATTER PLOT) ###
simpan=read.table("data3.1.csv" ,header = TRUE, sep=",") #membaca data
simpan
#Grafik Dasar
plot(simpan[2:3], main="Pendapatan dan Pengeluaran per-Bulan, dalam Jutaan Rupiah")

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

#Grafik Bold
library(ggplot2)
jenis=simpan$Jenis.Kelamin
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.

#Grafik Berwarna
library(ggplot2)
jenis=simpan$Jenis.Kelamin
qplot(
Pendapatan,
Pengeluaran, 
main="Pendapatan dan Pengeluaran per-Bulan, dalam Jutaan",
xlab="Pendapatan",
ylab="Pengeluaran",
color=jenis,
shape=jenis,
)

#Grfik 1
library(ggplot2)
ggplot(simpan, aes(Pendapatan, Pengeluaran)) + geom_point()

#Grafik 2
ggplot(simpan, aes(Pendapatan, Pengeluaran)) + geom_point (aes(color = jenis, shape = jenis))

#Grafik 3
grafik <- ggplot(simpan, aes(Pendapatan, Pengeluaran)) + geom_point(aes(color = jenis, shape = jenis))
grafik + scale_color_manual(values = c("blue", "orange"))

#Grafik 4
grafik + scale_shape_manual(values = c(16, 5))

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

#Grafik 6
grafik + facet_grid(.~ Jenis.Kelamin)

#Grafik 7
grafik + facet_grid(.~ Jenis.Kelamin) + scale_colour_manual(values = c("blue", "orange"))

#Grafik 8
grafik + geom_vline(xintercept = 2.5)

#Grafik 9
grafik + geom_vline(xintercept = 2.5) + geom_vline(xintercept = 5)

#Grafik 10
grafik + geom_vline(xintercept = 1:5)

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

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

#Grafik 13
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")

### MENYAJIKAN DATA DENGAN GRAFIK GARIS ###
simpan=read.table("data3.2.csv", header = TRUE, sep=",") #membaca data
simpan
Tahun=simpan$tahun
Jumlah_A=simpan$jenis.barang.A
Jumlah_B=simpan$jenis.barang.B
Jumlah_C=simpan$jenis.barang.C

Jumlah_A
## [1]  90 110 115 130 140 155 160
Jumlah_B
## [1]  85  90 105 110 120 125 130
Jumlah_C
## [1] 50 55 60 65 75 80 85
plot(Tahun,Jumlah_A)

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

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

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

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

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

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", col="red", ylim=c(40,180))
lines(Tahun,Jumlah_B, type="o", pch=22, col="blue")
lines(Tahun, Jumlah_C, type="o", col="green")

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

plot(Tahun,Jumlah_A, type="o", col="red", ylim=c(40,180))
lines(Tahun, Jumlah_B, type="o", pch=22, lty=2, 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, pch=22, lty=2, type="o", 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, pch=22, lty=2, type="p", col="green")

plot(Tahun,Jumlah_A, type="o", 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, pch=22, lty=2, type="o", col="green")

plot.new()
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)

Total = Jumlah_A
plot.new()
plot(Tahun, Total, 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)

### MENYAJIKAN DATA DENGAN GRAFIK BATANG ###

simpan=read.table("data3.3.csv",header = TRUE, sep=",") #membaca data
simpan
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")

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="green", density=c(10,20,30,4,5,60,70))

library(ggplot2)
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))

### MENYAJIKAN DATA DENGAN GRAFIK BATANG (BAGIAN KEDUA) ###

simpan=read.table("data3.4.csv",header=TRUE, sep=",") #membaca data
simpan
frekuensi1=c(90,10,25,75)
barplot(t(matrix(frekuensi1, 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
library(ggplot2)
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=FALSE)
## Warning: The `<scale>` argument of `guides()` cannot be `FALSE`. Use "none" instead as
## of ggplot2 3.3.4.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

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")),
total=c(80,20,40,60))

dat
ggplot(data=dat, aes(x=hobi, y=total, fill=Jenis_Kelamin))+geom_bar(stat="identity") + xlab("Hobi Mahasiswa") + 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))

### MENYAJIKAN DATA DENGAN DIAGRAM LINGKARAN ###

simpan=read.table("data3.5.csv", heade=TRUE, sep=",") #membaca data
simpan
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))

pie(simpan$Jumlah, labels = simpan$Jumlah,
    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)

pie(simpan$Jumlah, labels = simpan$Jumlah,
    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)

Persen <- round(simpan$Jumlah / sum(simpan$Jumlah) * 100, 4)
Persen <- paste(Persen, "%", sep = "")
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)

Jumlah <- simpan$Jumlah
Produk <- simpan$Produk
library(ggplot2)
pie <- ggplot(simpan, aes(x = "", y = Jumlah, fill = Produk)) +
  geom_bar(width = 1, stat = "identity") + coord_polar("y", start = 0)
pie

library(ggplot2)
library(grid)
library(gridExtra)

blank_theme <- theme(
  axis.title.x = element_blank(),
  axis.title.y = element_blank(),
  axis.text.x = element_blank(),
  axis.text.y = element_blank(),
  panel.border = element_blank(),
  panel.grid = element_blank(),
  axis.ticks = element_blank(),
  plot.title = element_text(size = 14, face = "bold")
)

library(scales)
pie + blank_theme +
  geom_text(aes(y = Jumlah / 4 + c(0, cumsum(Jumlah)[-length(Jumlah)]), label = Jumlah), size = 5)

pie + blank_theme +
  geom_text(aes(y = Jumlah / 4 + c(0, cumsum(Jumlah)[-length(Jumlah)]), label = Jumlah), size = 5) +
  scale_fill_manual(values = c(heat.colors(4)))

Persen <- round(simpan$Jumlah / sum(simpan$Jumlah) * 100, 2)
Persen <- paste(Persen, "%", sep = "")
pie + blank_theme +
  geom_text(aes(y = Jumlah / 4 + c(0, cumsum(Jumlah)[-length(Jumlah)]), label = Persen), size = 5) +
  scale_fill_manual(values = c(heat.colors(4)))

### MENYAJIKAN DATA DENGAN HISTOGRAM ###
simpan_skor_IQ <- read.csv("IQ.csv")

hist(simpan_skor_IQ$IQ, col = "lightblue")

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

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

hist(simpan_skor_IQ$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$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$IQ, breaks = 6, col = heat.colors(6), ylim = c(0, 30),
     main = "Contoh Histogram", ylab = "Frekuensi", xlim = c(90, 125))

hist(simpan_skor_IQ$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$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$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'

library(ggplot2)

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

ggplot(data = simpan_skor_IQ, aes(IQ)) +
  geom_histogram(
    breaks = c(90, 95, 100, 105, 110, 115, 120),
    col = "red",
    aes(fill = ..count..)
  ) +
  labs(title = "Contoh Histogram") +
  labs(x = "IQ", y = "Jumlah") +
  xlim(c(90, 125)) +
  ylim(c(0, 20)) +
  scale_fill_gradient("count", low = "green", high = "red")
## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
## This warning is displayed once per session.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_bar()`).

ggplot(data = simpan_skor_IQ, aes(IQ)) +
  geom_histogram(
    breaks = c(90, 93, 96, 99, 102, 105, 111, 114, 115, 120),
    col = "darkblue",
    fill = heat.colors(9),
    aes(fill = ..count..)
  ) +
  labs(title = "Contoh Histogram") +
  labs(x = "IQ", y = "Jumlah") +
  xlim(c(90, 125)) +
  ylim(c(0, 20)) +
  scale_fill_gradient("count", low = heat.colors(9), high = heat.colors(9))