LoginSignup
4
3

More than 5 years have passed since last update.

ファイル中で指定しているカラーコードを把握する #進捗を支える技術

Last updated at Posted at 2015-01-19

どうもシリアルパッケージクリエイター見習いです。

呪文のようなカラーコード(#000000, #FFFFFFの違いすら曖昧)を覚えることができないので、ファイルを見返してカラーコードを確認することがあります。しかし、そんなこともいちいちやっていると面倒なので、簡単にファイル中のカラーコードを把握したい、というもの。

color_picker: そんな関数

より正確にカラーコードを取得するよう、なおかつコードの可読性を高めるために@hoxo_mさんがコメントしてくれました。感謝。

# 関数の定義
color_picker <- function(file, show = TRUE, ...) {
  col <- readLines(file, warn = FALSE) %>%
  stringr::str_match_all("[\"\'](#[0-9a-fA-F]{6})[\"\']") %>% 
  Filter(function(x) length(x) != 0, .) %>%
  Map(function(x) x[,2], .) %>% 
  unlist %>%
  unique %>%
  print

  if(show == TRUE) {
    colortools::pizza(col)
    } else {
      NA
    print(col)
    }
}

magrittr, stringr, colortools

# 使い方
# test.Rというファイル内で指定されているカラーコードを返します
# show = TRUEにするとpizzaができあがります(笑
color_picker("test.R", show = FALSE)
# [1] "#000000" "#FFFFFF" "#9E9E9E" "#87CEEB" "#32CD32"

色名とかは無理。シャープではじまるカラーコードにのみ対応。上手くいかないこともあるから気をつけてください...。

colortoolsパッケージのpizza関数を使わせてもらって、プロットもしちゃいます。pizzaの代案としてはpopbioパッケージのcolorguide関数がありましたが、そこはお好みで。

宣伝

まだ全然機能がないですが、R使いのためのデザインツールパッケージ(uribo/designer)を開発中です...

devtools::install_github("uribo/designer")

男の価値は作ったパッケージの数で決まる、ということなのでじゃんじゃん無駄なパッケージを作っていきたい所存です。

4
3
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3