「gglinedensity」
は数百〜数万本の時系列の「線の密度をヒートマップ」としてプロット可能なパッケージです。 重なりすぎて判読不能な折れ線プロットをヒートマップの密度で確認可能です。
パッケージバージョンは0.2.0。実行コマンドはR version 4.5.0で確認しています。
パッケージのインストール、読み込み、準備
# パッケージのインストール
install.packages("gglinedensity")
# 読み込み
library("gglinedensity")
# tidyverseパッケージの読み込み
# tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
install.packages("tidyverse");require("tidyverse")
}
stat_line_density()
引数まとめ
密度の計算は「各列(時間ステップ)内で線数を弧長補正し合計 1 に正規化」した値。詳細はパッケージのヘルプを確認してください。
カテゴリ | 引数 | 説明・デフォルト |
---|---|---|
ビン設定 | bins | 縦横ビン数 (既定 30)。 |
binwidth | ビン幅を数値で指定。binwidth が優先される。 | |
drop | 低密度セルを除外 (TRUE ) / 低密度セルを描画 (FALSE )。 | |
動作制御 | orientation | 向き。"x" /"y" /NA (自動)。 |
na.rm | NAを除去するなら TRUE 。警告付きで除去が FALSE 。 | |
show.legend | 凡例に含めるか。NA =自動、FALSE / TRUE 。 |
実行例:1000 本の折れ線の判断
通常のgeom_line()
では視認しにくい1000 本の線が、「gglinedensity」パッケージで「よく通る軌跡」「外れた軌跡」が一目で判読できます。
# データ生成:1000 シリーズ × 100 ポイント
set.seed(123)
n_series <- 1000; n_pts <- 100
df <- data.frame(
id = rep(1:n_series, each = n_pts),
idx = rep(1:n_pts, n_series),
val = c(replicate(n_series, cumsum(rnorm(n_pts))))
)
# 単純にggplot2でプロット
ggplot(df, aes(x = idx, y = val,
group = id, col = id)) +
geom_line() +
scale_colour_viridis_c(option = "B") +
labs(title = "ggplot2 View",
x = "Step", y = "Value", fill = "density") +
theme_minimal()
# 「gglinedensity」パッケージのstat_line_densityコマンドでプロット
ggplot(df, aes(idx, val, group = id)) +
stat_line_density(bins = 60) +
scale_fill_viridis_c(option = "B") +
labs(title = "gglinedensity View",
x = "Step", y = "Value", fill = "density") +
theme_minimal()
・単純にggplot2でプロット

・「gglinedensity」パッケージのstat_line_densityコマンドでプロット

おすすめのガジェット!PLAUD NotePin
Rとは関係ないですが、NotebookLMと組み合わせると便利な声で記録を残すガジェットです!!
大変便利なので紹介します。
公式サイトのリンクは下記の通りです。
公式サイト:https://jp.plaud.ai/
Amazonリンク:https://amzn.to/3FNp62P
少しでも、あなたの解析が楽になりますように!!