Rで解析:ggplot2で線の密度をヒートマップ「gglinedensity」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

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.rmNAを除去するなら 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


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

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