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"))
出力例






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