Rで解析:R MarkDownで紹介!カラーパレットがいっぱい「ggsci」パッケージ

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

ggplot2でも利用できるカラーパレットが収録されているパッケージの紹介です。コマンドの紹介のRmdファイルを実行するとカラーパレットを確認できるようにしました。

パッケージバージョンは2.9。実行コマンドはwindows 11のR version 4.1.2で確認しています。

スポンサーリンク

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

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

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

コマンドの紹介

詳細はコマンド、各パッケージのヘルプを確認してください。以下からファイルをダウンロードしRStudioで実行しても同じコマンドの紹介内容と同じ結果が得られます。なお、拡張子はRmdです。

---
title: "ggsci"
output:
  flexdashboard::flex_dashboard:
  orientation: columns
social: menu
source_code: embed
runtime: shiny
---
  
  ```{r global, include=FALSE}
#必要パッケージの読み込み
if(!require("ggsci", quietly = TRUE)){
  install.packages("ggsci");require("ggsci")
}
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}
if(!require("flexdashboard", quietly = TRUE)){
  install.packages("flexdashboard");require("flexdashboard")
}
if(!require("DT", quietly = TRUE)){
  install.packages("DT");require("DT")
}

###データ例の作成#####
n <- 100
TestData <- data.frame("Group" = sample(paste0("Group", 1:5), n, replace = TRUE),
                          "Data1" = sample(1:10, n, replace = TRUE),
                          "Data2" = sample(LETTERS[1:24], n, replace = TRUE))
########
#「ggsci」パッケージ:カラーパレット名
GgSColName <- c("AAAS Journal Color Palettes", "D3.js Color Palettes", "The Futurama Color Palettes",
                   "Integrative Genomics Viewer (IGV) Color Palettes", "Journal of Clinical Oncology Color Palettes",
                   "Lancet Journal Color Palettes", "LocusZoom Color Palette", "NEJM Color Palettes",
                   "NPG Journal Color Palettes", "Rick and Morty Color Palettes", "The Simpsons Color Palettes",
                   "Star Trek Color Palettes", "The University of Chicago Color Palettes",
                   "UCSC Genome Browser Color Palette")
#「ggsci」パッケージ:ggplot2で使えるシンボル色コマンド
GgScalCol <- c("scale_color_aaas()", "scale_color_d3()", "scale_color_futurama()",
                  "scale_color_igv()", "scale_color_jco()", "scale_color_lancet()",
                  "scale_color_locuszoom()", "scale_color_nejm()", "scale_color_npg()",
                  "scale_color_rickandmorty()", "scale_color_simpsons()", "scale_color_startrek()",
                  "scale_color_uchicago()", "scale_color_ucscgb()")
#「ggsci」パッケージ:ggplot2で使える塗色コマンド
GgScalFill <- c("scale_fill_aaas()", "scale_fill_d3()", "scale_fill_futurama()",
                   "scale_fill_igv()", "scale_fill_jco()", "scale_fill_lancet()",
                   "scale_fill_locuszoom()", "scale_fill_nejm()", "scale_fill_npg()",
                   "scale_fill_rickandmorty()", "scale_fill_simpsons()", "scale_fill_startrek()",
                   "scale_fill_uchicago()", "scale_fill_ucscgb()")
#「ggsci」パッケージ:収録カラーパレットコマンド
GgScalPal <- c("pal_aaas()", "pal_d3()", "pal_futurama()",
                  "pal_igv()", "pal_jco()", "pal_lancet()",
                  "pal_locuszoom()", "pal_nejm()", "pal_npg()",
                  "pal_rickandmorty()", "pal_simpsons()", "pal_startrek()",
                  "pal_uchicago()", "pal_ucscgb()")
#「ggsci」パッケージ:収録各カラーパレットの色数
GgScalNO <- c(10, 10, 12, 51, 10, 9, 7, 8, 10, 12, 16, 7, 9, 26)
```

Column {data-width=500}
-------------------------------------
  ```{r}
selectInput('Colpal', 'Select Color Palette Name', GgSColName)

```

###収録カラーパレット

```{r}
renderDataTable({
  ColCodeData <- eval(parse(text = paste0(GgScalPal[which(GgSColName == input$Colpal)], "(", GgScalNO[which(GgSColName == input$Colpal)], ")")))
  ColCodeData <- data.frame("ColerCode" = strtrim(ColCodeData, 7),
                               "Color" = rep("", length(ColCodeData)))
  datatable(ColCodeData, rownames = FALSE,
            options = list(pageLength = 10, lengthMenu = c(20, 40, 100))) %>%
    formatStyle("Color", valueColumns = "ColerCode",
                backgroundColor = styleEqual(ColCodeData[, 1], ColCodeData[, 1]))
})
```

Column {data-width=500}
-------------------------------------
  
  ###colカラーパレット
  ```{r}
renderPlot({
  ggplot(TestData,
         aes(x = Data1, y = Data2, col = Group)) +
    geom_point(size = 10) +
    theme_bw() +
    eval(parse(text = GgScalCol[which(GgSColName == input$Colpal)])) +
    labs(title = paste0(GgScalCol[which(GgSColName == input$Colpal)], " コマンド"))
})
```

###fillカラーパレット
```{r}
renderPlot({
  ggplot(TestData,
         aes(x = Data2, fill = Group)) +
    geom_histogram(stat = "count") +
    
    
    theme_bw() +
    eval(parse(text = GgScalFill[which(GgSColName == input$Colpal)])) +
    labs(title = paste0(GgScalFill[which(GgSColName == input$Colpal)], " コマンド"))
})
```

出力例


少しでも、あなたの解析が楽になりますように!!

Amazon audibleの登録の紹介

プライム会員限定で2024年7月22日まで3か月無料体験キャンペーン開催中です。無料体験後は月額1,500円で聞き放題です。なお、聞き放題対象外の本はAudible会員であれば非会員価格の30%引きで購入することが可能です。

Amazon audibleはプロのナレーターが朗読した本をアプリで聞くことができるサービスで、オフライン再生も可能です。通勤や作業のお供にAmazon audibleのご登録はいかがでしょうか。

・AmazonのAudible

https://amzn.to/3L4FI5o

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