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

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パッケージと組み合わせた例

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

Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.
タイトルとURLをコピーしました