Rで解析:ApexChartsをRで作成「apexcharter」パッケージ

Rの解析に役に立つ記事

JavaScriptのチャートを作成できるApexCharts.jsをRから利用できるパッケージの紹介です。使い方はかなりシンプルです。

パッケージバージョンは0.4.0。R version 4.2.2で確認しています。

スポンサーリンク
スポンサーリンク

パッケージのインストール

下記コマンドを実行してください。

#「htmltools」パッケージ>= 0.5.4が必要
install.packages("htmltools")
#パッケージのインストール
install.packages("apexcharter")

実行コマンド

詳細はコマンド、パッケージのヘルプを確認してください。

#パッケージの読み込み
library("apexcharter")

###データ例の作成#####
#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}
#lubridateパッケージがなければインストール
if(!require("lubridate", quietly = TRUE)){
  install.packages("lubridate");require("lubridate")
}

set.seed(1234)
n <- 30
TestData <- tibble(Group = sample(paste0("Group ", 1:5),
                                  n, replace = TRUE),
                   Date = seq(lubridate::ymd("2022-12-01", locale = "C",
                                             tz = "Asia/Tokyo"),
                              by = "1 day", length.out = n),
                   Num = sample(20:50, n, replace = TRUE))

#typeオプション:"candlestick"用データ
#crypto2パッケージがなければインストール
#https://www.karada-good.net/analyticsr/r-645/
if(!require("crypto2", quietly = TRUE)){
  install.packages("crypto2");require("crypto2")
}
#暗号資産のリストを取得:crypto_listコマンド
coins <- crypto_list(only_active = TRUE)
#XYM(Symbol)の情報を抜き出し
coins %>%
  filter(symbol == "XYM") -> XYMList
#暗号資産の価格を取得:crypto_historyコマンド
coin_hist <- crypto_history(XYMList, limit = 1,
                            start_date = "20221201",
                            end_date = "20230109") %>%
  select(timestamp, open, close, low, high) %>%
  mutate(timestamp = as.Date(timestamp)) %>%
  mutate_if(is.numeric, ~round(., 4))
  
  
########

#ApexChartsの作成:apexコマンド
#データの指定:dataオプション
#美的マッピングの指定:mappingオプション;「aes」オプションと合わせて使用
##軸だけでなくgroupなども指定可能
#プロット内容を指定:typeオプション;"column","bar","line","step","spline",
##"area","area-step","area-spline","pie","donut","radialBar","radar","scatter",
##"heatmap","treemap","candlestick"の指定が可能

#typeオプション:"candlestick"以外
ALLType <- c("column","bar","line","step","spline","area","area-step",
             "area-spline","pie","donut","radialBar","radar","scatter",
             "heatmap","treemap")

#プロット
for(n in seq(ALLType)){
  
  if(ALLType[n] != "heatmap"){
    
    print(apex(data = TestData,
               mapping = aes(x = Group),
               type = ALLType[n]) %>%
            
            #塗色の指定:ax_colorsコマンド;16進数カラーコードで指定する
            ax_colors("#deb7a0") %>%
            
            #タイトル追加:ax_titleコマンド
            #内容:textオプション
            #文字位置:alignオプション;"left","center","right"
            #文字サイス,色:styleオプション;list classで指定する
            ax_title('apexコマンド',
                     style = list(fontSize = 15, color = "black")) %>%
            
            #サブタイトル追加:ax_subtitleコマンド
            #オプションはax_titleコマンドと同じ
            ax_subtitle(paste0("type = ", ALLType[n]),
                        style = list(fontSize = 13, color = "red")))
    
  }else{
    
    print(apex(data = TestData,
               mapping = aes(x = as.character(Date), y = Group, fill = Num),
               type = ALLType[n]) %>%
            
            #塗色の指定:ax_colorsコマンド;16進数カラーコードで指定する
            ax_colors("#deb7a0") %>%
            
            #タイトル追加:ax_titleコマンド
            #内容:textオプション
            #文字位置:alignオプション;"left","center","right"
            #文字サイス,色:styleオプション;list classで指定する
            ax_title('apexコマンド',
                     style = list(fontSize = 15, color = "black")) %>%
            
            #サブタイトル追加:ax_subtitleコマンド
            #オプションはax_titleコマンドと同じ
            ax_subtitle(paste0("type = ", ALLType[n]),
                        style = list(fontSize = 13, color = "red")))
    
  }
}

#typeオプション:"candlestick"
apex(coin_hist,
     aes(x = timestamp,
         open = open, close = close,
         low = low, high = high),
     type = "candlestick") %>%
  ax_title('"type = "candlestick"',
           style = list(fontSize = 15, color = "black"))

出力例


少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました