library(ggplot2)
data(Puromycin)
head(Puromycin)
NROW(Puromycin) #NROW atau bisa juga dim
## [1] 23
dim(Puromycin)
## [1] 23 3
ggplot(data=Puromycin, mapping=aes(x=conc))+
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 konsentrasi substrat",
x="konsentrasi substrat",
y="frequensi")+
geom_text(aes(label=Freq), vjust=-0.2)
## 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="frekuensi", x="konsentrasi substrat")+
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="konsentrasi substrat", fill="status eksperimen",
y="frekuensi")+
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="konsentrasi substrat", fill="status eksperimen",
y="frekuensi")+
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 <- Puromycin %>%
group_by(conc) %>%
summarise(counts=n())
df
library(dplyr)
df <- df %>%
arrange(desc(conc)) %>%
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=conc)) +
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/Lenovo IP Slim 3/Documents/export-output-2.xlsx",sheet = 1)
head(data.spasial)
#import shp
library(sf)
## Warning: package 'sf' was built under R version 4.4.3
## Linking to GEOS 3.13.0, GDAL 3.10.1, PROJ 9.5.1; sf_use_s2() is TRUE
shp.jabar <- read_sf("C:/Users/Lenovo IP Slim 3/Desktop/PETA SHP 34 Prov/Export_Output_2.dbf")
#menggabungkn data
# Import library yang diperlukan
library(sf)
library(dplyr) # Pastikan library dplyr digunakan untuk left_join
sum(duplicated(shp.jabar$NAME_1)) # Periksa duplikasi di shp.jabar
## [1] 24
sum(duplicated(data.spasial$NAME_1)) # Periksa duplikasi di data.spasial
## [1] 24
shp.jabar <- shp.jabar %>% distinct(NAME_1, .keep_all = TRUE)
data.spasial <- 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 = "Jawa Barat"`.
## 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.jabar <- read_sf("C:/Users/Lenovo IP Slim 3/Desktop/PETA SHP 34 Prov/Export_Output_2.dbf")
# Menggabungkan data dengan left_join
gabung.jabar <- left_join(shp.jabar, data.spasial, by = "NAME_1")
# Jika datanya memiliki many-to-many relationship, coba gunakan full_join
gabung.jabar <- full_join(shp.jabar, data.spasial, by = "NAME_1")
plot.jabar <- ggplot(data = gabung.jabar)+
geom_sf(aes(fill = Latitude.x))+
scale_fill_distiller("index rate", palette = "Blues")
plot.jabar