【R】ggpattern

1. はじめに

ggplotで棒グラフ等の内部を塗りつぶすなど、geomのカスタマイズができるパッケージggpatternがあります。

2. インストール

remotes::install_github("coolbutuseless/ggpattern")

3. 使ってみる

つかってみました。

library(ggplot2)
library(ggpattern)

df <- data.frame(level = c("a", "b", "c", 'd'), outcome = c(1.3, 2.9, 2.2, 3.3))

ggplot(df) +
  geom_col_pattern(
    aes(level, outcome, pattern_fill = level),
    pattern = 'stripe',
    fill    = 'blue',
    colour  = 'black'
  ) +
  theme_bw(10) +
  theme(legend.position = 'none') +
  labs(
    title    = "ggpattern::geom_pattern_col()",
    subtitle = "pattern = 'stripe'"
  ) +
  coord_fixed(ratio = 1/2)

こんなふうに国旗も書くことができます。

flags <- c(
  system.file("img", "flag", "au.png", package = "ggpattern"),
  system.file("img", "flag", "dk.png", package = "ggpattern"),
  system.file("img", "flag", "gb.png", package = "ggpattern"),
  system.file("img", "flag", "gr.png", package = "ggpattern"),
  system.file("img", "flag", "no.png", package = "ggpattern"),
  system.file("img", "flag", "se.png", package = "ggpattern"),
  system.file("img", "flag", "us.png", package = "ggpattern")
)

p <- ggplot(mpg, aes(class)) +
  geom_bar_pattern(
    aes(
      pattern_filename = class
    ),
    pattern         = 'image',
    pattern_type    = 'none',
    fill            = 'grey80',
    colour          = 'black',
    pattern_scale   = -2,
    pattern_filter  = 'point',
    pattern_gravity = 'east'
  ) +
  theme_bw(18) +
  labs(
    title = "ggpattern::geom_bar_pattern() + coord_flip()",
    subtitle = "pattern = 'image'"
  ) +
  theme(legend.position = 'none') +
  scale_pattern_filename_discrete(choices = flags) +
  coord_flip() +
  scale_pattern_discrete(guide = guide_legend(nrow = 1))

p

Add a Comment

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