Rで解析:ggplot2で矢印プロットを作成「ggquiver」パッケージ

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

ggplot2で矢印プロットを作成するパッケージの紹介です。ggmapパッケージなどと組み合わせると利用の幅が広がると考えます。ggquiverパッケージ単独とggmapパッケージの組み合わせを紹介します。

パッケージバージョンは0.1.0。windows 10のR version 3.4.1で動作を確認しています。

スポンサーリンク

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

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

#パッケージのインストール
install.packages("ggquiver")

コマンドの紹介

詳細はコマンド、パッケージのヘルプを確認してください。体裁はggplot2のコマンドで調整可能です。

#パッケージの読み込み
library("ggquiver")
#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}

###データ例の作成#####
TestData <- expand.grid(x = seq(0, pi, pi/12),
                        y = seq(0, pi, pi/12))
########

#速度プロットの作成:geom_quiverコマンド
#開始地点:x,yオプション
#開始地点からx軸方向の終了地点:uオプション
#開始地点からy軸方向の終了地点:vオプション
ggplot(TestData, aes(x = TestData[, 1], y = TestData[, 2],
                     u = sinpi(TestData[, 1])*cospi(TestData[, 2]),
                     v = cos(TestData[, 2]))) +
  geom_quiver(aes(col = sinpi(TestData[, 1])*cospi(TestData[, 2])),
              center = TRUE, show.legend = FALSE, vecsize = NULL,
              rescale = FALSE) +
  scale_colour_gradientn(colours = heat.colors(6)) +
  theme(title = element_text(colour = "#ffffe0"),
        axis.title = element_text(colour = "#ffffe0"),
        axis.text = element_text(colour = "#ffffe0"),
        axis.text.y = element_text(size = 5),
        panel.grid = element_blank(), 
        panel.background = element_rect(fill = "#0a0a0a"),
        plot.background = element_rect(fill = "#0a0a0a"))

#######################################
###ggmapパッケージと組み合わせた例#####
#######################################

#パッケージのインストール
install.packages("ggmap")
install.packages("stringi")

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

#ggmapパッケージを利用して緯度経度を取得
#stringi:stri_encodeコマンドを利用すると日本語でもエラーが出ません。
LonLatData <- geocode(stri_encode("京都", "", "utf-8"))

#緯度経度の範囲を設定
LonLatDataAra <- c(LonLatData - .02, LonLatData + .02)

#適当にプロットデータを作成
TestPlotData <- data.frame(x = seq(LonLatDataAra[[1]], LonLatDataAra[[3]], 0.004),
                              y = seq(LonLatDataAra[[2]], LonLatDataAra[[4]], 0.004))

#Mapデータを取得:ggmapパッケージ;get_googlemapコマンド
GetMap <- get_googlemap(center = c(lon = LonLatData[[1]], lat = LonLatData[[2]]),
                           zoom = 13)

#プロット
ggmap(GetMap) +
  geom_quiver(data = TestPlotData, aes(x = x, y = y, u = x, v = y, size = y),
              center = TRUE, show.legend = FALSE, vecsize = NULL,
              rescale = FALSE, col = "red") 

出力例

・geom_quiverコマンド

・ggmapパッケージと組み合わせた例


夏の終わりが近づいています。学会参加で忙しくなる人もいるかと思います。忙しさに負けませんように。そして少しでも、あなたの解析が楽になりますように!!

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