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"))
出力例
少しでも、あなたの解析が楽になりますように!!