input data

library(ggplot2)
data(chickwts)
head(chickwts)
dim(chickwts)
## [1] 71  2

bar chart

sebaran dari data kategorik ordinal kualitas potongan berlian (cut)

ggplot(data = chickwts , mapping = aes(x = feed)) +
  geom_bar()

bar chart dengan tabel frekuensi

membaut tabel frekuensi

freqtab <- as.data.frame(table(chickwts$feed))
freqtab

Membuat bar chart

ggplot(data = freqtab, mapping = aes(x = Var1, y = Freq)) +
  geom_bar(stat = "identity")

cara lain yang dapat digunakan untuk membuat diagram batang ketika data yang kita miliki sudah dalam bentuk tabel frekuensi adalah dengan geom_col()

ggplot(data = freqtab, mapping = aes( x = Var1, y = Freq)) +
  geom_col()

memodifikasi bar chart

menambahkan judul, mewarnai grafik , dan memberikan label pada setiap batang.

ggplot(data = freqtab, mapping = aes(x = Var1, y = Freq)) +
  geom_col(fill = "red", alpha = 0.7) +
  labs(title = "Frekuensi berdasarkan kualitas potongan berlian",
       x = "kualitas potongan berlian",
       y = "Frekuensi") +
  geom_text(aes(label = Freq), vjust = -0.25)

needle chart

ggplot(data=freqtab,
       mapping=aes(x=reorder(Var1,Freq), y=Freq))+
  geom_segment(aes(x=reorder(Var1,Freq),
                   xend=reorder(Var1,Freq),
                   y=0, yend=Freq), color="black")+
  geom_point(color="yellow", size=9, alpha=0.9)+
  coord_flip()+
  labs(y="Jumlah berlian", x="kualitas potongan berlian")+
   geom_text(aes(label=Freq), vjust=-0.10)

Grouped Bar chart

ggplot(data=chickwts,
       mapping=aes(x=feed, fill=feed))+
  geom_bar(position="dodge", stat="count")+
  labs(x="kualitas potongan berlian", fill="warna berlian",
       y="jumlah berlian")+
  scale_fill_brewer(palette = "blue")+
  theme_light()
## Warning: Unknown palette: "blue"

Stacked bar chart

ggplot(data=chickwts,
       mapping=aes(x=feed, fill= feed))+
  geom_bar(position="stack", stat="count")+
  labs(x="feed", fill="data",
       y="frekuensi")+
  scale_fill_brewer(palette = "pink")+
  theme_light()
## Warning: Unknown palette: "pink"

pie chart

menyiapkan data dengan meringkas menjadi tabel frekuensi

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
df <- chickwts %>%
  group_by(feed) %>%
  summarise(counts = n())
df

menghitung posisi label teks sebagai jumlah kumulatif proporsi

df <- df %>%
  arrange(desc(feed)) %>%
  mutate(prop= round(counts*100/sum(counts), 1),
         lab.ypos = cumsum(prop) - 0.5*prop)
head(df ,4)

membuat grafik pie chart

ggplot(df, aes(x = "", y = prop, fill = feed)) +
  geom_bar(width = 1, stat = "identity", color = "white") +
  geom_text(aes(y = lab.ypos, label = prop), color = "white") +
  coord_polar("y", start = 0)+
  ggpubr::fill_palette("jco")+
  theme_void()

peta spasial

library(readxl)
library(dplyr)
data.spasial <- read_xlsx("C:/Users/andhi/Downloads/Export_Output_2.xlsx",sheet = 1)
head(data.spasial)
#import shp

library(sf)
## Linking to GEOS 3.13.0, GDAL 3.10.1, PROJ 9.5.1; sf_use_s2() is TRUE
shp.papua <- read_sf("C:/Users/andhi/Downloads/PETA SHP 34 Prov (1)/PETA SHP 34 Prov/24-Papua/Export_Output_2.shp")

#menggabungkan data ke file SHP
gabung.papua=left_join(shp.papua,data.spasial, by="ID_2")

pemetaan data spasial

##pemetaan index rate kasus DBD pada papua
library(sf)
plot.papua = ggplot(data=gabung.papua) +
  geom_sf(aes(fill = Longitude.x))+
  scale_fill_distiller("index rate", palette = "Reds")

plot.papua