Skip to content

Instantly share code, notes, and snippets.

@uribo
Last active August 10, 2019 12:31
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save uribo/663e1812b456041b66a12d8794c195a3 to your computer and use it in GitHub Desktop.
Save uribo/663e1812b456041b66a12d8794c195a3 to your computer and use it in GitHub Desktop.
Go Andoさんのおしゃれな図をRで
# Original: Go Ando (@goando) https://twitter.com/goando/status/1159674083363053568
# 1枚目 ---------------------------------------------------------------------
library(ggrepel)
library(ggchicklet)
library(tidyverse)
df_label <-
tibble(
x = c(6, 20),
y = c(215, 40),
label = c("日の出", "日の入"))
df_dummy <- tibble(
hour = as_factor(seq.int(0, 23)),
count = c(24, 46, 51, 53, 114, 218, 204, 115, 106, 72, 71, 93, 90, 77, 33, 30, 24, 22, 24, 25, 51, 34, 19, 20),
grp = c(rep("A", times = 5),
"B",
rep("C", 13),
"B",
rep("A", 4)))
p_base <-
ggplot() +
geom_chicklet(data = df_dummy,
aes(hour, count, group = grp, fill = grp),
width = 0.85, radius = grid::unit(8, "pt"), color = "transparent") +
scale_fill_manual(values = c("A"= "#5E5E5F",
"B" = "#E39C4D",
"C" = "#E7BD5B")) +
guides(fill = FALSE) +
xlab("時刻") +
ylab("人数") +
labs(title = "登り始めの時間の分布",
caption = "@goandoさんの図を元に\n@uriboがggplot2で再現したものです。データはダミー。") +
scale_y_continuous(limits = c(0, 250), expand = expansion(add = c(0, 20)))
p_out <-
p_base +
geom_label_repel(data = df_label, aes(x = x, y = y, label = label), family = "IPAexGothic",
nudge_x = 0, nudge_y = 4,
fill = "#EAE7DD",
size = 3.8,
box.padding = 2,
arrow = arrow(length = unit(0.01, "npc"), type = "closed", ends = "last"),
direction = "y", segment.color = "#92908E") +
theme(text = element_text(family = "YuGo-Bold", colour = "#92908E"),
plot.background = element_rect(fill = "#F2EFE5"),
panel.background = element_rect(fill = "#F2EFE5"),
plot.title = element_text(family = "YuGo-Bold", size = 32, hjust = 0.5, colour = "#5E5E5F"),
axis.title = element_text(face = "bold", size = 16, colour = "#92908E"),
axis.title.x = element_text(hjust = 0.99),
axis.title.y = element_text(vjust = 1.0, hjust = 0.5, angle = 360),
axis.ticks = element_blank(),
axis.text = element_text(size = 14, face = "bold", colour = "#92908E", family = "Arial Narrow"),
axis.line.x = element_blank(),
panel.grid.major.y = element_line(colour = "#92908E", linetype = "dotted", size = 0.5),
panel.grid.minor.y = element_blank(),
panel.grid.major.x = element_blank())
ggsave("plot1.png", p_out,
width = 7,
height = 5.2,
dpi = 300)
# 4枚目 -----------------------------------------------------------------------
library(ggforce)
p_out <-
iris %>%
ggplot(aes(Petal.Length, Petal.Width)) +
geom_mark_circle(aes(fill = Species, label = Species), label.fill = "#F8F7F9") +
scale_fill_manual(values = c("setosa" = "#D4E1EF", "versicolor" = "#D4E1EF", "virginica" = "#D4E1EF")) +
geom_point(shape = 21, color = "white", stroke = 0.2, fill = "#69A3E6", size = 2.5) +
guides(fill = FALSE) +
scale_y_continuous(limits = range(iris$Petal.Width), expand = expansion(add = c(1, 1.2))) +
theme(axis.title = element_text(face = "bold", size = 14, colour = "#92908E"),
text = element_text(family = "YuGo-Bold", colour = "#92908E"),
axis.ticks = element_blank(),
panel.grid.major.y = element_line(colour = "#92908E", size = 0.2),
panel.grid.minor.y = element_blank(),
axis.text = element_text(size = 12, face = "bold", colour = "#92908E", family = "Arial Narrow"),
plot.background = element_rect(fill = "#F8F7F9"),
panel.background = element_rect(fill = "#F8F7F9"),
axis.line.x = element_blank(),
panel.grid.major.x = element_blank())
ggsave("plot2.png", p_out,
width = 7,
height = 5.2,
dpi = 300)
@uribo
Copy link
Author

uribo commented Aug 9, 2019

sessioninfo::session_info()
#> ─ Session info ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
#>  setting  value                       
#>  version  R version 3.6.0 (2019-04-26)
#>  os       macOS Mojave 10.14.6        
#>  system   x86_64, darwin18.5.0        
#>  ui       RStudio                     
#>  language En                          
#>  collate  ja_JP.UTF-8                 
#>  ctype    ja_JP.UTF-8                 
#>  tz       Asia/Tokyo                  
#>  date     2019-08-10                  
#> 
#> ─ Packages ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
#>  package     * version    date       lib source                              
#>  assertthat    0.2.1      2019-03-21 [1] CRAN (R 3.6.0)                      
#>  backports     1.1.4      2019-04-10 [1] CRAN (R 3.6.0)                      
#>  broom         0.5.2      2019-04-07 [1] CRAN (R 3.6.0)                      
#>  cellranger    1.1.0      2016-07-27 [1] CRAN (R 3.6.0)                      
#>  cli           1.1.0      2019-03-19 [1] CRAN (R 3.6.0)                      
#>  colorspace    1.4-1      2019-03-18 [1] CRAN (R 3.6.0)                      
#>  crayon        1.3.4      2017-09-16 [1] CRAN (R 3.6.0)                      
#>  dplyr       * 0.8.3      2019-07-04 [1] CRAN (R 3.6.0)                      
#>  ellipsis      0.2.0.9000 2019-07-30 [1] Github (r-lib/ellipsis@27e0846)     
#>  farver        1.1.0      2018-11-20 [1] CRAN (R 3.6.0)                      
#>  forcats     * 0.4.0      2019-02-17 [1] CRAN (R 3.6.0)                      
#>  generics      0.0.2      2018-11-29 [1] CRAN (R 3.6.0)                      
#>  ggchicklet  * 0.1.0      2019-08-09 [1] Github (hrbrmstr/ggchicklet@a06ed3e)
#>  ggforce     * 0.3.0      2019-08-09 [1] CRAN (R 3.6.0)                      
#>  ggplot2     * 3.2.0.9000 2019-08-09 [1] Github (tidyverse/ggplot2@541ae99)  
#>  ggrepel     * 0.8.1      2019-05-07 [1] CRAN (R 3.6.0)                      
#>  glue          1.3.1.9000 2019-08-09 [1] Github (tidyverse/glue@7ac044a)     
#>  gtable        0.3.0      2019-03-25 [1] CRAN (R 3.6.0)                      
#>  haven         2.1.1      2019-07-04 [1] CRAN (R 3.6.0)                      
#>  hms           0.5.0      2019-07-09 [1] CRAN (R 3.6.0)                      
#>  httr          1.4.1      2019-08-05 [1] CRAN (R 3.6.0)                      
#>  jsonlite      1.6        2018-12-07 [1] CRAN (R 3.6.0)                      
#>  knitr       * 1.24       2019-08-08 [1] CRAN (R 3.6.0)                      
#>  labeling      0.3        2014-08-23 [1] CRAN (R 3.6.0)                      
#>  lattice       0.20-38    2018-11-04 [2] CRAN (R 3.6.0)                      
#>  lazyeval      0.2.2      2019-03-15 [1] CRAN (R 3.6.0)                      
#>  lubridate     1.7.4      2018-04-11 [1] CRAN (R 3.6.0)                      
#>  magrittr    * 1.5        2014-11-22 [1] CRAN (R 3.6.0)                      
#>  MASS          7.3-51.4   2019-03-31 [2] CRAN (R 3.6.0)                      
#>  modelr        0.1.5      2019-08-08 [1] CRAN (R 3.6.0)                      
#>  munsell       0.5.0      2018-06-12 [1] CRAN (R 3.6.0)                      
#>  nlme          3.1-141    2019-08-01 [2] CRAN (R 3.6.0)                      
#>  packrat       0.5.0      2018-11-14 [1] CRAN (R 3.6.0)                      
#>  pillar        1.4.2      2019-06-29 [1] CRAN (R 3.6.0)                      
#>  pkgconfig     2.0.2      2018-08-16 [1] CRAN (R 3.6.0)                      
#>  polyclip      1.10-0     2019-03-14 [1] CRAN (R 3.6.0)                      
#>  purrr       * 0.3.2      2019-03-15 [1] CRAN (R 3.6.0)                      
#>  R6            2.4.0      2019-02-14 [1] CRAN (R 3.6.0)                      
#>  Rcpp          1.0.2      2019-07-25 [1] CRAN (R 3.6.0)                      
#>  readr       * 1.3.1      2018-12-21 [1] CRAN (R 3.6.0)                      
#>  readxl        1.3.1      2019-03-13 [1] CRAN (R 3.6.0)                      
#>  rlang         0.4.0.9002 2019-08-09 [1] Github (r-lib/rlang@09fbc86)        
#>  rstudioapi    0.10       2019-03-19 [1] CRAN (R 3.6.0)                      
#>  rvest         0.3.4      2019-05-15 [1] CRAN (R 3.6.0)                      
#>  scales        1.0.0      2018-08-09 [1] CRAN (R 3.6.0)                      
#>  sessioninfo   1.1.1      2018-11-05 [1] CRAN (R 3.6.0)                      
#>  stringi       1.4.3      2019-03-12 [1] CRAN (R 3.6.0)                      
#>  stringr     * 1.4.0      2019-02-10 [1] CRAN (R 3.6.0)                      
#>  tibble      * 2.1.3      2019-06-06 [1] CRAN (R 3.6.0)                      
#>  tidyr       * 0.8.3.9000 2019-07-01 [1] Github (tidyverse/tidyr@d9ecc8f)    
#>  tidyselect    0.2.5      2018-10-11 [1] CRAN (R 3.6.0)                      
#>  tidyverse   * 1.2.1      2017-11-14 [1] CRAN (R 3.6.0)                      
#>  tweenr        1.0.1      2018-12-14 [1] CRAN (R 3.6.0)                      
#>  vctrs         0.2.0      2019-07-05 [1] CRAN (R 3.6.0)                      
#>  withr         2.1.2      2018-03-15 [1] CRAN (R 3.6.0)                      
#>  xfun          0.8        2019-06-25 [1] CRAN (R 3.6.0)                      
#>  xml2          1.2.1      2019-07-29 [1] CRAN (R 3.6.0)                      
#>  zeallot       0.1.0      2018-01-28 [1] CRAN (R 3.6.0)                      
#> 
#> [1] /usr/local/lib/R/3.6/site-library
#> [2] /usr/local/Cellar/r/3.6.0_2/lib/R/library

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment