【R】ggnewscale

1. はじめに

ggnewscaleは、ggplotで複数のスケールを手軽に扱えるようにするためのパッケージです。

2. インストール

CRANからインストールできます。

install.packages("ggnewscale")

3. 使ってみる

こんな感じで、複数のスケールを扱えます。

library(ggplot2)
library(ggnewscale)

topography <- expand.grid(x = 1:nrow(volcano),
                          y = 1:ncol(volcano))
topography$z <- c(volcano)


set.seed(42)
measurements <- data.frame(x = runif(30, 1, 80),
                           y = runif(30, 1, 60),
                           tree = rnorm(30))

rocks <- data.frame(x = rnorm(10, 45, 20),
                    y = rnorm(10, 35, 20),
                    rock = rnorm(10, 4, 2))

ggplot(mapping = aes(x, y)) +
  geom_contour(data = topography, aes(z = z, color = stat(level))) +
  scale_color_viridis_c(option = "D") +
  new_scale_color() +
  geom_point(data = measurements, size = 3, aes(color = tree)) +
  scale_color_viridis_c(option = "A") +
  new_scale_color() +
  geom_point(data = rocks, size = 2, aes(color = rock), shape = 17) +
  scale_fill_gradient(low = "black" , high = "white")

4. さいごに

複数のデータを一つにまとめて表示したいときに、スケールが異なっていると困る場合がありましたが、これで簡単に解決。

Add a Comment

メールアドレスが公開されることはありません。