library(ggplot2)
data("PlantGrowth")
head(PlantGrowth)
NROW(PlantGrowth) #NROW atau bisa juga dim
## [1] 30
dim(PlantGrowth)
## [1] 30 2
ggplot(data=PlantGrowth, mapping=aes(x=group))+
geom_bar()
## Frekuensi membuat tabel frekuensi
freqtab <- as.data.frame(table(Puromycin$conc))
freqtab
membuat bar chart
ggplot(data=freqtab, mapping=aes(x=Var1, y=Freq))+
geom_bar(stat="identity")
#Atau bisa juga
ggplot(data=freqtab, mapping=aes(x=Var1, y=Freq))+
geom_col()
modifikasi bar chart
ggplot(data=freqtab, mapping=aes(x=Var1, y=Freq))+
geom_col(fill="coral", alpha=0.9)+
labs(title = "Frekuensi berdasarkan pertumbuhan tanaman",
x="kualitas pertumbuhan tanaman",
y="frequensi")+
geom_text(aes(label=Freq), vjust=0.7)
## 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 tanaman", x="kualitas pertumbuhan tanaman")+
geom_text(aes(label=Freq), vjust=0.7)
## Grouped bar chart
ggplot(data=Puromycin,
mapping=aes(x=conc, fill=as.factor(state)))+
geom_bar(position="dodge", stat="count")+
labs(x="kualitas pertumbuhan tanaman", fill="warna tanaman",
y="jumlah tanaman")+
scale_fill_brewer(palette = "Blues")+
theme_light()
## Stacked bar chart
ggplot(data=Puromycin,
mapping=aes(x=conc, fill=as.factor(state)))+
geom_bar(position="stack", stat="count")+
labs(x="kualitas pertumbuhan tanaman", fill="warna tanaman",
y="jumlah tanaman")+
scale_fill_brewer(palette = "Blues")+
theme_light()
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 <- PlantGrowth %>%
group_by(group) %>%
summarise(counts=n())
df
library(dplyr)
df <- df %>%
arrange(desc(group)) %>%
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= lab.ypos)) +
geom_bar(width=1, stat="identity", color="white") +
geom_text(aes(y=lab.ypos, label = prop), color="magenta") +
coord_polar("y", start=0) +
scale_fill_gradient(low="pink", high="red") + # Palet warna kontinu
theme_void()
library(readxl)
data.spasial <- read_xlsx("C:/Users/rafir/OneDrive/Rafi Ramadhan Asshiddieqie/rafi palembang.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.sumsel <- read_sf("C:/Users/rafir/Downloads/PETA SHP 34 Prov/PETA SHP 34 Prov/32-Sumatera Selatan/Export_Output_2.shp")
#menggabungkn data
# Import library yang diperlukan
library(sf)
library(dplyr) # Pastikan library dplyr digunakan untuk left_join
sum(duplicated(shp.sumsel$NAME_1)) # Periksa duplikasi di shp.sumsel
## [1] 13
sum(duplicated(data.spasial$NAME_1)) # Periksa duplikasi di data.spasial
## [1] 13
shp.sumsel <- shp.sumsel %>% distinct(NAME_1, .keep_all = TRUE)
data.spasialll <- data.spasial %>% distinct(NAME_1, .keep_all = TRUE)
data.spasial <- data.spasial %>%
group_by(NAME_1) %>%
summarise(across(everything(), mean, na.rm = TRUE)) # Sesuaikan dengan jenis data
## Warning: There were 4 warnings in `summarise()`.
## The first warning was:
## ℹ In argument: `across(everything(), mean, na.rm = TRUE)`.
## ℹ In group 1: `NAME_1 = "Sumatera Selatan"`.
## Caused by warning:
## ! The `...` argument of `across()` is deprecated as of dplyr 1.1.0.
## Supply arguments directly to `.fns` through an anonymous function instead.
##
## # Previously
## across(a:b, mean, na.rm = TRUE)
##
## # Now
## across(a:b, \(x) mean(x, na.rm = TRUE))
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 3 remaining warnings.
# Membaca data shapefile
shp.sumsel <- read_sf("C:/Users/rafir/Downloads/PETA SHP 34 Prov/PETA SHP 34 Prov/32-Sumatera Selatan/Export_Output_2.shp")
# Menggabungkan data dengan left_join
gabung.sumsel <- left_join(shp.sumsel, data.spasial, by = "NAME_1")
# Jika datanya memiliki many-to-many relationship, coba gunakan full_join
gabung.sumsel <- full_join(shp.sumsel, data.spasial, by = "NAME_1")
plot.sumsel <- ggplot(data = gabung.sumsel)+
geom_sf(aes(fill = Latitude.x))+
scale_fill_distiller("index rate", palette = "Blues")
plot.sumsel