Pendahuluan

Dalam tulisan ini, menyajikan berbagai informasi statistik dari beberapa Kecamatan Kota Medan. Tulisan ini lebih difokuskan pada penggunaan RStudio dalam penyajian data.

Sumber Data

Data dalam tulisan ini diperoleh dengan mengakses situs http://medankota.bps.go.id/frontend/index.php/Publikasi (diakses terakhir, 17 April 2016).

Software

Software yang digunakan dalam mengolah data adalah software RStudio.

Statistik Kecamatan Kota Medan

Berikut disajikan statistik mengenai jumlah kelurahan, jumlah lingkungan, jumlah penduduk, dan sebagainya, dari beberapa Kecamatan Kota Medan

library(ggplot2)

statistik=read.csv("statistik_medan.csv",  header = TRUE) 
statistik
##    No Kecamatan2    Kecamatan3                    Kecamatan
## 1   1    Belawan Belawan 98020 Kecamatan Medan Belawan 2014
## 2   2      Johor  Johor 130414   Kecamatan Medan Johor 2014
## 3   3     Amplas Amplas 121362  Kecamatan Medan Amplas 2014
## 4   4    Petisah Petisah 63333 Kecamatan Medan Petisah 2014
## 5   5      Barat   Barat 72620   Kecamatan Medan Barat 2014
## 6   6       Baru    Baru 40519    Kecamatan Medan Baru 2014
## 7   7       Deli   Deli 178147    Kecamatan Medan Deli 2014
## 8   8      Denai  Denai 145667   Kecamatan Medan Denai 2014
## 9   9      Timur  Timur 109445   Kecamatan Medan Timur 2014
## 10 10       Area    Area 98955    Kecamatan Medan Area 2014
## 11 11       Kota    Kota 74406    Kecamatan Medan Kota 2014
##    Jumlah.Kelurahan Jumlah.Lingkungan Jumlah.Penduduk Jumlah.Laki.Laki
## 1                 6               143           98020            48394
## 2                 6                81          130414            64387
## 3                 7                77          121362            59918
## 4                 7                69           63333            31268
## 5                 6                98           72620            35853
## 6                 6                64           40519            20005
## 7                 6               105          178147            87954
## 8                 6                82          145667            71923
## 9                11               128          109445            52906
## 10               12               172           98955            48856
## 11               12               146           74406            36735
##    Jumlah.Perempuan Luas.Wilayah Jumlah.PNS Jumlah.Pegawai.Swasta
## 1             49626        21.82        824                  6919
## 2             66027        16.96       3804                 12976
## 3             61444        13.76       3305                  3716
## 4             32065         4.93       1913                 14562
## 5             36767         5.40       1491                  6934
## 6             20514         5.41         NA                    NA
## 7             90193        22.60         NA                    NA
## 8             73754         9.91         NA                    NA
## 9             56539         7.82       4793                 29396
## 10            50099         4.22       2202                 15027
## 11            37671         5.98       1379                 14736

Berdasarkan informasi di atas, diketahui pada Kecamatan Medan Belawan, pada tahun 2014, jumlah kelurahan sebanyak 6, jumlah lingkungan sebanyak 143, jumlah penduduk sebanyak 98020, dan sebagainya. Diketahui berdasarkan data di atas, luas wilayah terbesar terletak pada Kecamatan Medan Deli, yakni 22,6km2.

Luas Wilayah

LuasWilayah=statistik$Luas.Wilayah
Nomor_Kecamatan=statistik$No
Kecamatan=statistik$Kecamatan

barplot(LuasWilayah,Nomor_Kecamatan, space=10, main="Luas Wilayah di Beberapa Kecamatan Kota Medan (km2)", xlab="Beberapa Kecamatan Kota Medan", ylab="Luas Wilayah", names.arg=c("1","2", "3", "4", "5", "6", "7", "8", "9", "10", "11"), border="green" )

ggplot(data=statistik,aes(x=factor(Nomor_Kecamatan),y=LuasWilayah,fill=Kecamatan)) + stat_summary(fun.y=mean,geom="bar") +scale_fill_manual(values=c("blue", "darkblue", "red", "darkred", "orange", "darkorange", "green", "darkgreen", "purple", "yellow", "pink")) + xlab("Beberapa Kecamatan di Kota Medan") + ylab("Luas Wilayah") + ggtitle("Luas Wilayah di Beberapa Kecamatan Kota Medan (km2)") + geom_text(aes(y=LuasWilayah/1.3, label=LuasWilayah), position="stack" )

ggplot(data=statistik,aes(x=factor(Nomor_Kecamatan),y=LuasWilayah,fill=Kecamatan)) + stat_summary(fun.y=mean,geom="bar") + scale_fill_manual(values=c(heat.colors(11))) + xlab("Beberapa Kecamatan di Kota Medan") + ylab("Luas Wilayah") + ggtitle("Luas Wilayah di Beberapa Kecamatan Kota Medan (km2)") + geom_text(aes(y=LuasWilayah/1.3, label=LuasWilayah), position="stack" )

ggplot(data=statistik,aes(x=factor(Nomor_Kecamatan),y=LuasWilayah,fill=Kecamatan)) + stat_summary(fun.y=mean,geom="bar") + scale_fill_manual(values=c(rainbow(11))) + xlab("Beberapa Kecamatan di Kota Medan") + ylab("Luas Wilayah") + ggtitle("Luas Wilayah di Beberapa Kecamatan Kota Medan (km2)") + geom_text(aes(y=LuasWilayah/1.3, label=LuasWilayah), position="stack" )

ggplot(data=statistik,aes(x=factor(Nomor_Kecamatan),y=LuasWilayah,fill=Kecamatan)) + stat_summary(fun.y=mean,geom="bar") + scale_fill_manual(values=c(terrain.colors(11))) + xlab("Beberapa Kecamatan di Kota Medan") + ylab("Luas Wilayah") + ggtitle("Luas Wilayah di Beberapa Kecamatan Kota Medan (km2)") + geom_text(aes(y=LuasWilayah/1.3, label=LuasWilayah), position="stack" )

ggplot(data=statistik,aes(x=factor(Nomor_Kecamatan),y=LuasWilayah,fill=Kecamatan)) + stat_summary(fun.y=mean,geom="bar") + scale_fill_manual(values=c(topo.colors(11))) + xlab("Beberapa Kecamatan di Kota Medan") + ylab("Luas Wilayah") + ggtitle("Luas Wilayah di Beberapa Kecamatan Kota Medan (km2)") + geom_text(aes(y=LuasWilayah/1.3, label=LuasWilayah), position="stack" )

ggplot(data=statistik,aes(x=factor(Nomor_Kecamatan),y=LuasWilayah,fill=Kecamatan)) + stat_summary(fun.y=mean,geom="bar") + scale_fill_manual(values=c(cm.colors(11))) + xlab("Beberapa Kecamatan di Kota Medan") + ylab("Luas Wilayah") + ggtitle("Luas Wilayah di Beberapa Kecamatan Kota Medan (km2)") + geom_text(aes(y=LuasWilayah/1.3, label=LuasWilayah), position="stack" )

library(scales)

blank_theme = theme(
#axis.title.x=element_blank(), #kenapa di-non aktifkan hehehe
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=12, face="bold")
)


ggplot(statistik, aes(x="", y=Luas.Wilayah, fill=Kecamatan))+ blank_theme + geom_bar(width=1,stat="identity")+coord_polar("y",start=0) + ggtitle("Luas Wilayah di Beberapa Kecamatan Kota Medan (km2)") +scale_fill_manual(values=c("blue", "darkblue", "red", "darkred", "orange", "darkorange", "green", "darkgreen", "purple", "yellow", "pink")) + geom_text(aes(y=LuasWilayah/2 + c(0,cumsum(LuasWilayah)[-length(LuasWilayah)]), label=LuasWilayah), size=3) + ylab("Luas Wilayah") + ggtitle("Luas Wilayah di Beberapa Kecamatan Kota Medan (km2)") 

ggplot(statistik, aes(x="", y=Luas.Wilayah, fill=Kecamatan))+ blank_theme + geom_bar(width=1,stat="identity")+coord_polar("y",start=0) + ggtitle("Luas Wilayah di Beberapa Kecamatan Kota Medan (km2)") + scale_fill_manual(values=c(terrain.colors(11))) + geom_text(aes(y=LuasWilayah/2 + c(0,cumsum(LuasWilayah)[-length(LuasWilayah)]), label=LuasWilayah), size=3) + ylab("Luas Wilayah") + ggtitle("Luas Wilayah di Beberapa Kecamatan Kota Medan (km2)") 

Jumlah Laki-Laki dan Perempuan, di Beberapa Kecamatan Kota Medan

bingkai <- data.frame(jenis_kelamin=c("laki-laki", "perempuan","laki-laki", "perempuan","laki-laki", "perempuan","laki-laki", "perempuan","laki-laki", "perempuan","laki-laki", "perempuan"),
          kecamatan=c("Medan Belawan","Medan Belawan", "Medan Johor", "Medan Johor", "Medan Amplas", "Medan Amplas","Medan Petisah", "Medan Petisah", "Medan Barat", "Medan Barat", "Medan Baru", "Medan Baru"),
          jumlah=c(48394,49626,64387,66027,59918,61444,31268, 32065, 35853, 36767, 20005, 20514))


bingkai
##    jenis_kelamin     kecamatan jumlah
## 1      laki-laki Medan Belawan  48394
## 2      perempuan Medan Belawan  49626
## 3      laki-laki   Medan Johor  64387
## 4      perempuan   Medan Johor  66027
## 5      laki-laki  Medan Amplas  59918
## 6      perempuan  Medan Amplas  61444
## 7      laki-laki Medan Petisah  31268
## 8      perempuan Medan Petisah  32065
## 9      laki-laki   Medan Barat  35853
## 10     perempuan   Medan Barat  36767
## 11     laki-laki    Medan Baru  20005
## 12     perempuan    Medan Baru  20514
# Stacked barplot with multiple groups
ggplot(data=bingkai, aes(x=kecamatan, y=jumlah, fill=jenis_kelamin)) + geom_bar(stat="identity") + geom_text(aes(y=jumlah/1.3, label=jumlah), color="black", size=3.5, position="stack")  + ggtitle("Jumlah Laki-Laki dan Perempuan di Tahun 2014, Beberapa Kecamatan Medan")

# Use position=position_dodge()
ggplot(data=bingkai, aes(x=kecamatan, y=jumlah, fill=jenis_kelamin)) +
geom_bar(stat="identity", position=position_dodge()) + geom_text(aes(label=jumlah), vjust=1.6, color="black",
            position = position_dodge(0.9), size=3.5) + ggtitle("Jumlah Laki-Laki dan Perempuan di Tahun 2014, Beberapa Kecamatan Medan")

# Stacked barplot with multiple groups
ggplot(data=bingkai, aes(x=kecamatan, y=jumlah, fill=jenis_kelamin)) + geom_bar(stat="identity") + geom_text(aes(y=jumlah/1.3, label=jumlah), color="black", size=3.5, position="stack")  + ggtitle("Jumlah Laki-Laki dan Perempuan di Tahun 2014, Beberapa Kecamatan Medan") + scale_fill_manual(values=c(rainbow(2)))

# Use position=position_dodge()
ggplot(data=bingkai, aes(x=kecamatan, y=jumlah, fill=jenis_kelamin)) +
geom_bar(stat="identity", position=position_dodge()) + geom_text(aes(label=jumlah), vjust=1.6, color="black",
            position = position_dodge(0.9), size=3.5) + ggtitle("Jumlah Laki-Laki dan Perempuan di Tahun 2014, Beberapa Kecamatan Medan") + scale_fill_manual(values=c(rainbow(2)))

# Stacked barplot with multiple groups
ggplot(data=bingkai, aes(x=kecamatan, y=jumlah, fill=jenis_kelamin)) + geom_bar(stat="identity") + geom_text(aes(y=jumlah/1.3, label=jumlah), color="black", size=3.5, position="stack")  + ggtitle("Jumlah Laki-Laki dan Perempuan di Tahun 2014, Beberapa Kecamatan Medan") + scale_fill_manual(values=c(heat.colors(2)))

# Use position=position_dodge()
ggplot(data=bingkai, aes(x=kecamatan, y=jumlah, fill=jenis_kelamin)) +
geom_bar(stat="identity", position=position_dodge()) + geom_text(aes(label=jumlah), vjust=1.6, color="black",
            position = position_dodge(0.9), size=3.5) + ggtitle("Jumlah Laki-Laki dan Perempuan di Tahun 2014, Beberapa Kecamatan Medan") + scale_fill_manual(values=c(heat.colors(2)))

bingkai2 <- data.frame(jenis_kelamin=c("laki-laki", "perempuan","laki-laki", "perempuan","laki-laki", "perempuan","laki-laki", "perempuan","laki-laki", "perempuan","laki-laki", "perempuan", "laki-laki", "perempuan", "laki-laki", "perempuan",  "laki-laki", "perempuan", "laki-laki", "perempuan", "laki-laki", "perempuan"),
          kecamatan=c("Belawan","Belawan", "Johor", "Johor", "Amplas", "Amplas","Petisah", "Petisah", "Barat", "Barat", "Baru", "Baru", "Deli", "Deli", "Denai", "Denai", "Timur", "Timur", "Area", "Area", "Kota", "Kota"),
          jumlah=c(48394,49626,64387,66027,59918,61444,31268, 32065, 35853, 36767, 20005, 20514, 87954, 90193, 71923, 73754, 52906, 56539, 48856, 50099, 36735, 37671))


bingkai2
##    jenis_kelamin kecamatan jumlah
## 1      laki-laki   Belawan  48394
## 2      perempuan   Belawan  49626
## 3      laki-laki     Johor  64387
## 4      perempuan     Johor  66027
## 5      laki-laki    Amplas  59918
## 6      perempuan    Amplas  61444
## 7      laki-laki   Petisah  31268
## 8      perempuan   Petisah  32065
## 9      laki-laki     Barat  35853
## 10     perempuan     Barat  36767
## 11     laki-laki      Baru  20005
## 12     perempuan      Baru  20514
## 13     laki-laki      Deli  87954
## 14     perempuan      Deli  90193
## 15     laki-laki     Denai  71923
## 16     perempuan     Denai  73754
## 17     laki-laki     Timur  52906
## 18     perempuan     Timur  56539
## 19     laki-laki      Area  48856
## 20     perempuan      Area  50099
## 21     laki-laki      Kota  36735
## 22     perempuan      Kota  37671
# Stacked barplot with multiple groups
ggplot(data=bingkai2, aes(x=kecamatan, y=jumlah, fill=jenis_kelamin)) + geom_bar(stat="identity") + geom_text(aes(y=jumlah/1.3, label=jumlah), color="black", size=3.5, position="stack")  + ggtitle("Jumlah Laki-Laki dan Perempuan di Tahun 2014, Beberapa Kecamatan Medan")

# Use position=position_dodge()
ggplot(data=bingkai2, aes(x=kecamatan, y=jumlah, fill=jenis_kelamin)) +
geom_bar(stat="identity", position=position_dodge()) + geom_text(aes(label=jumlah), vjust=1.6, color="black",
            position = position_dodge(0.9), size=3.5) + ggtitle("Jumlah Laki-Laki dan Perempuan di Tahun 2014, Beberapa Kecamatan Medan")

# Stacked barplot with multiple groups
ggplot(data=bingkai2, aes(x=kecamatan, y=jumlah, fill=jenis_kelamin)) + geom_bar(stat="identity") + geom_text(aes(y=jumlah/1.3, label=jumlah), color="black", size=3.5, position="stack")  + ggtitle("Jumlah Laki-Laki dan Perempuan di Tahun 2014, Beberapa Kecamatan Medan") + scale_fill_manual(values=c(rainbow(2)))

# Use position=position_dodge()
ggplot(data=bingkai2, aes(x=kecamatan, y=jumlah, fill=jenis_kelamin)) +
geom_bar(stat="identity", position=position_dodge()) + geom_text(aes(label=jumlah), vjust=1.6, color="black",
            position = position_dodge(0.9), size=3.5) + ggtitle("Jumlah Laki-Laki dan Perempuan di Tahun 2014, Beberapa Kecamatan Medan") + scale_fill_manual(values=c(rainbow(2)))

# Stacked barplot with multiple groups
ggplot(data=bingkai2, aes(x=kecamatan, y=jumlah, fill=jenis_kelamin)) + geom_bar(stat="identity") + geom_text(aes(y=jumlah/1.3, label=jumlah), color="black", size=3.5, position="stack")  + ggtitle("Jumlah Laki-Laki dan Perempuan di Tahun 2014, Beberapa Kecamatan Medan") + scale_fill_manual(values=c(heat.colors(2)))

# Use position=position_dodge()
ggplot(data=bingkai2, aes(x=kecamatan, y=jumlah, fill=jenis_kelamin)) +
geom_bar(stat="identity", position=position_dodge()) + geom_text(aes(label=jumlah), vjust=1.6, color="black",
            position = position_dodge(0.9), size=3.5) + ggtitle("Jumlah Laki-Laki dan Perempuan di Tahun 2014, Beberapa Kecamatan Medan") + scale_fill_manual(values=c(heat.colors(2)))

Sebaran Data Luas Wilayah dan Jumlah Penduduk, di Beberapa Kecamatan Kota Medan

ggplot(statistik, aes(Luas.Wilayah, Jumlah.Penduduk)) +
  geom_point(aes(colour = Kecamatan)) +
scale_colour_manual(values = c("blue", "darkblue", "red", "darkred", "orange", "darkorange", "green", "darkgreen", "purple", "yellow", "pink")) + geom_text(aes(label=Kecamatan2))

ggplot(statistik, aes(Luas.Wilayah, Jumlah.Penduduk)) +
  geom_point(aes(colour = Kecamatan)) +
scale_colour_manual(values = c("blue", "darkblue", "red", "darkred", "orange", "darkorange", "green", "darkgreen", "purple", "yellow", "pink")) + geom_text(aes(label=Kecamatan2), check_overlap=TRUE)

ggplot(statistik, aes(Luas.Wilayah, Jumlah.Penduduk)) +
  geom_point(aes(colour = Kecamatan)) +
scale_colour_manual(values = c("blue", "darkblue", "red", "darkred", "orange", "darkorange", "green", "darkgreen", "purple", "yellow", "pink")) + geom_text(aes(label=Kecamatan2), check_overlap=TRUE, vjust = -0.5, nudge_y =0) 

ggplot(statistik, aes(Luas.Wilayah, Jumlah.Penduduk)) +
  geom_point(aes(colour = Kecamatan)) +
scale_colour_manual(values = c("blue", "darkblue", "red", "darkred", "orange", "darkorange", "green", "darkgreen", "purple", "yellow", "pink")) + geom_text(aes(label=Kecamatan3), check_overlap=TRUE, vjust = -0.5, nudge_y =0) 

ggplot(statistik, aes(Luas.Wilayah, Jumlah.Penduduk)) +
  geom_point(aes(colour = Kecamatan)) +
scale_colour_manual(values = c("blue", "darkblue", "red", "darkred", "orange", "darkorange", "green", "darkgreen", "purple", "yellow", "pink")) + geom_text(aes(label=Kecamatan3), check_overlap=TRUE, vjust = -0.5, nudge_y =0) + 
   scale_y_continuous(limits = c(0, 200000)) +
 scale_x_continuous(limits = c(-5, 30)) +
ggtitle("Jumlah Penduduk di Beberapa Kecamatan Kota Medan, Tahun 2014")

ggplot(statistik, aes(Luas.Wilayah, Jumlah.Penduduk)) +
  geom_point(aes(colour = Kecamatan)) +
scale_colour_manual(values = c("blue", "darkblue", "red", "darkred", "orange", "darkorange", "green", "darkgreen", "purple", "yellow", "pink")) + geom_text(aes(label=Kecamatan3), check_overlap=TRUE, vjust = -0.5, nudge_y =0) + 
   scale_y_continuous(limits = c(0, 200000)) +
 scale_x_continuous(limits = c(-5, 30)) +
ggtitle("Jumlah Penduduk di Beberapa Kecamatan Kota Medan, Tahun 2014") + 
  geom_vline(xintercept = c(5, 10, 15), colour="green", linetype = "longdash") + 
  geom_hline(yintercept = c(50000, 100000, 150000), colour="red", linetype = "longdash")

Referensi

  1. http://rforpublichealth.blogspot.co.id/2014/01/ggplot2-cheatsheet-for-barplots.html
  2. http://www.sthda.com/english/wiki/ggplot2-barplots-quick-start-guide-r-software-and-data-visualization
  3. https://learnr.wordpress.com/2009/03/17/ggplot2-barplots/
  4. http://www.cookbook-r.com/Graphs/Colors_(ggplot2)/
  5. http://docs.ggplot2.org/current/aes_colour_fill_alpha.html
  6. https://stat.ethz.ch/R-manual/R-devel/library/grDevices/html/palettes.html
  7. http://www.sthda.com/english/wiki/ggplot2-colors-how-to-change-colors-automatically-and-manually