Data

Data diambil dari Pasardana

bond <- read_excel("data/data240126.xlsx")

bond$`Tanggal Terbit` <- as.Date(bond$`Tanggal Terbit`, "%y-%m-%d")
## Warning in as.POSIXlt.POSIXct(x, tz = tz): unknown timezone '%y-%m-%d'
bond$`Jatuh Tempo` <- as.Date(bond$`Jatuh Tempo`, "%y-%m-%d")
## Warning in as.POSIXlt.POSIXct(x, tz = tz): unknown timezone '%y-%m-%d'
bond
## # A tibble: 50 × 19
##    Kode   Nama              `Tanggal Terbit` Emiten Sektor `Sub Sektor` Industri
##    <chr>  <chr>             <date>           <chr>  <chr>  <chr>        <chr>   
##  1 FR0037 Obligasi Negara … 2006-05-19       INDO   Produ… Obligasi     Obligasi
##  2 FR0040 Obligasi Negara … 2006-09-22       INDO   Produ… Obligasi     Obligasi
##  3 FR0042 Obligasi Negara … 2007-01-26       INDO   Produ… Obligasi     Obligasi
##  4 FR0044 Obligasi Negara … 2007-04-20       INDO   Produ… Obligasi     Obligasi
##  5 FR0045 Obligasi Negara … 2007-05-25       INDO   Produ… Obligasi     Obligasi
##  6 FR0047 Obligasi Negara … 2007-08-31       INDO   Produ… Obligasi     Obligasi
##  7 FR0050 Obligasi Negara … 2008-01-25       INDO   Produ… Obligasi     Obligasi
##  8 FR0052 Obligasi Negara … 2009-08-21       INDO   Produ… Obligasi     Obligasi
##  9 FR0054 Obligasi Negara … 2010-07-23       INDO   Produ… Obligasi     Obligasi
## 10 FR0056 Obligasi Negara … 2010-09-24       INDO   Produ… Obligasi     Obligasi
## # ℹ 40 more rows
## # ℹ 12 more variables: `Sub Industri` <chr>, Denominasi <chr>, Rating <chr>,
## #   Syariah <chr>, Kupon <dbl>, `Jatuh Tempo` <date>, `Harga (%)` <dbl>,
## #   TTM <dbl>, YTM <dbl>, `Current Yield` <dbl>, `Total Val` <dbl>,
## #   `Outstanding Amount` <dbl>

Vizualisation

bond_viz <- bond %>%
  filter(YTM >0) %>%
  mutate(Kupon = Kupon*100, YTM = YTM *100) %>% 
  ggplot(aes(x = TTM, 
             y = Kupon, 
             # size = `Outstanding Amount`, 
             # text = Kode, 
             color = YTM
             ))+
  # geom_text_repel(aes(label = Kode))+
  # geom_point(aes(shape = Syariah), size = 0.5)+
  geom_point(size = 0.5)+
  geom_text(aes(label = Kode))+
  scale_color_gradient(low = "red", high = "blue")+
  scale_x_discrete(limits = c(0,5,10,15,20))+
  theme_bw() +
  theme(panel.border = element_blank(), 
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(), 
        axis.line = element_line(colour = "black"))+
  geom_vline(xintercept = c(5, 10, 15, 20), linetype="dotted", size = 0.05)+
  geom_hline(yintercept = c(6, 8, 10, 12), linetype="dotted", size = 0.05)+
  labs(title = "Grafik Kupon, TTM dan YTM SBN - edisi 29 Januari 2024")
## Warning: Continuous limits supplied to discrete scale.
## ℹ Did you mean `limits = factor(...)` or `scale_*_continuous()`?
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
ggplotly(bond_viz)