Packages
Contents
Rが組み込みで用意している色の名前についてのメモです。
colors()
組み込みパッケージであるgrDevicesにあるcolors()は、Rで用意されている色の名前を出してくれる関数です。実行すると657色の色の名前を出してくれます。ここで出てくる色の名前をグラフ作成のときに指定すると、その色が使えます。
[1] "white" "aliceblue" "antiquewhite" "antiquewhite1"
[5] "antiquewhite2" "antiquewhite3" "antiquewhite4" "aquamarine"
[9] "aquamarine1" "aquamarine2" "aquamarine3" "aquamarine4"
[13] "azure" "azure1" "azure2" "azure3"
[17] "azure4" "beige" "bisque" "bisque1"
[21] "bisque2" "bisque3" "bisque4" "black"
[25] "blanchedalmond" "blue" "blue1" "blue2"
[29] "blue3" "blue4" "blueviolet" "brown"
[33] "brown1" "brown2" "brown3" "brown4"
[37] "burlywood" "burlywood1" "burlywood2" "burlywood3"
[41] "burlywood4" "cadetblue" "cadetblue1" "cadetblue2"
[45] "cadetblue3" "cadetblue4" "chartreuse" "chartreuse1"
[49] "chartreuse2" "chartreuse3" "chartreuse4" "chocolate"
[53] "chocolate1" "chocolate2" "chocolate3" "chocolate4"
[57] "coral" "coral1" "coral2" "coral3"
[61] "coral4" "cornflowerblue" "cornsilk" "cornsilk1"
[65] "cornsilk2" "cornsilk3" "cornsilk4" "cyan"
[69] "cyan1" "cyan2" "cyan3" "cyan4"
[73] "darkblue" "darkcyan" "darkgoldenrod" "darkgoldenrod1"
[77] "darkgoldenrod2" "darkgoldenrod3" "darkgoldenrod4" "darkgray"
[81] "darkgreen" "darkgrey" "darkkhaki" "darkmagenta"
[85] "darkolivegreen" "darkolivegreen1" "darkolivegreen2" "darkolivegreen3"
[89] "darkolivegreen4" "darkorange" "darkorange1" "darkorange2"
[93] "darkorange3" "darkorange4" "darkorchid" "darkorchid1"
[97] "darkorchid2" "darkorchid3" "darkorchid4" "darkred"
[101] "darksalmon" "darkseagreen" "darkseagreen1" "darkseagreen2"
[105] "darkseagreen3" "darkseagreen4" "darkslateblue" "darkslategray"
[109] "darkslategray1" "darkslategray2" "darkslategray3" "darkslategray4"
[113] "darkslategrey" "darkturquoise" "darkviolet" "deeppink"
[117] "deeppink1" "deeppink2" "deeppink3" "deeppink4"
[121] "deepskyblue" "deepskyblue1" "deepskyblue2" "deepskyblue3"
[125] "deepskyblue4" "dimgray" "dimgrey" "dodgerblue"
[129] "dodgerblue1" "dodgerblue2" "dodgerblue3" "dodgerblue4"
[133] "firebrick" "firebrick1" "firebrick2" "firebrick3"
[137] "firebrick4" "floralwhite" "forestgreen" "gainsboro"
[141] "ghostwhite" "gold" "gold1" "gold2"
[145] "gold3" "gold4" "goldenrod" "goldenrod1"
[149] "goldenrod2" "goldenrod3" "goldenrod4" "gray"
[153] "gray0" "gray1" "gray2" "gray3"
[157] "gray4" "gray5" "gray6" "gray7"
[161] "gray8" "gray9" "gray10" "gray11"
[165] "gray12" "gray13" "gray14" "gray15"
[169] "gray16" "gray17" "gray18" "gray19"
[173] "gray20" "gray21" "gray22" "gray23"
[177] "gray24" "gray25" "gray26" "gray27"
[181] "gray28" "gray29" "gray30" "gray31"
[185] "gray32" "gray33" "gray34" "gray35"
[189] "gray36" "gray37" "gray38" "gray39"
[193] "gray40" "gray41" "gray42" "gray43"
[197] "gray44" "gray45" "gray46" "gray47"
[201] "gray48" "gray49" "gray50" "gray51"
[205] "gray52" "gray53" "gray54" "gray55"
[209] "gray56" "gray57" "gray58" "gray59"
[213] "gray60" "gray61" "gray62" "gray63"
[217] "gray64" "gray65" "gray66" "gray67"
[221] "gray68" "gray69" "gray70" "gray71"
[225] "gray72" "gray73" "gray74" "gray75"
[229] "gray76" "gray77" "gray78" "gray79"
[233] "gray80" "gray81" "gray82" "gray83"
[237] "gray84" "gray85" "gray86" "gray87"
[241] "gray88" "gray89" "gray90" "gray91"
[245] "gray92" "gray93" "gray94" "gray95"
[249] "gray96" "gray97" "gray98" "gray99"
[253] "gray100" "green" "green1" "green2"
[257] "green3" "green4" "greenyellow" "grey"
[261] "grey0" "grey1" "grey2" "grey3"
[265] "grey4" "grey5" "grey6" "grey7"
[269] "grey8" "grey9" "grey10" "grey11"
[273] "grey12" "grey13" "grey14" "grey15"
[277] "grey16" "grey17" "grey18" "grey19"
[281] "grey20" "grey21" "grey22" "grey23"
[285] "grey24" "grey25" "grey26" "grey27"
[289] "grey28" "grey29" "grey30" "grey31"
[293] "grey32" "grey33" "grey34" "grey35"
[297] "grey36" "grey37" "grey38" "grey39"
[301] "grey40" "grey41" "grey42" "grey43"
[305] "grey44" "grey45" "grey46" "grey47"
[309] "grey48" "grey49" "grey50" "grey51"
[313] "grey52" "grey53" "grey54" "grey55"
[317] "grey56" "grey57" "grey58" "grey59"
[321] "grey60" "grey61" "grey62" "grey63"
[325] "grey64" "grey65" "grey66" "grey67"
[329] "grey68" "grey69" "grey70" "grey71"
[333] "grey72" "grey73" "grey74" "grey75"
[337] "grey76" "grey77" "grey78" "grey79"
[341] "grey80" "grey81" "grey82" "grey83"
[345] "grey84" "grey85" "grey86" "grey87"
[349] "grey88" "grey89" "grey90" "grey91"
[353] "grey92" "grey93" "grey94" "grey95"
[357] "grey96" "grey97" "grey98" "grey99"
[361] "grey100" "honeydew" "honeydew1" "honeydew2"
[365] "honeydew3" "honeydew4" "hotpink" "hotpink1"
[369] "hotpink2" "hotpink3" "hotpink4" "indianred"
[373] "indianred1" "indianred2" "indianred3" "indianred4"
[377] "ivory" "ivory1" "ivory2" "ivory3"
[381] "ivory4" "khaki" "khaki1" "khaki2"
[385] "khaki3" "khaki4" "lavender" "lavenderblush"
[389] "lavenderblush1" "lavenderblush2" "lavenderblush3" "lavenderblush4"
[393] "lawngreen" "lemonchiffon" "lemonchiffon1" "lemonchiffon2"
[397] "lemonchiffon3" "lemonchiffon4" "lightblue" "lightblue1"
[401] "lightblue2" "lightblue3" "lightblue4" "lightcoral"
[405] "lightcyan" "lightcyan1" "lightcyan2" "lightcyan3"
[409] "lightcyan4" "lightgoldenrod" "lightgoldenrod1" "lightgoldenrod2"
[413] "lightgoldenrod3" "lightgoldenrod4" "lightgoldenrodyellow" "lightgray"
[417] "lightgreen" "lightgrey" "lightpink" "lightpink1"
[421] "lightpink2" "lightpink3" "lightpink4" "lightsalmon"
[425] "lightsalmon1" "lightsalmon2" "lightsalmon3" "lightsalmon4"
[429] "lightseagreen" "lightskyblue" "lightskyblue1" "lightskyblue2"
[433] "lightskyblue3" "lightskyblue4" "lightslateblue" "lightslategray"
[437] "lightslategrey" "lightsteelblue" "lightsteelblue1" "lightsteelblue2"
[441] "lightsteelblue3" "lightsteelblue4" "lightyellow" "lightyellow1"
[445] "lightyellow2" "lightyellow3" "lightyellow4" "limegreen"
[449] "linen" "magenta" "magenta1" "magenta2"
[453] "magenta3" "magenta4" "maroon" "maroon1"
[457] "maroon2" "maroon3" "maroon4" "mediumaquamarine"
[461] "mediumblue" "mediumorchid" "mediumorchid1" "mediumorchid2"
[465] "mediumorchid3" "mediumorchid4" "mediumpurple" "mediumpurple1"
[469] "mediumpurple2" "mediumpurple3" "mediumpurple4" "mediumseagreen"
[473] "mediumslateblue" "mediumspringgreen" "mediumturquoise" "mediumvioletred"
[477] "midnightblue" "mintcream" "mistyrose" "mistyrose1"
[481] "mistyrose2" "mistyrose3" "mistyrose4" "moccasin"
[485] "navajowhite" "navajowhite1" "navajowhite2" "navajowhite3"
[489] "navajowhite4" "navy" "navyblue" "oldlace"
[493] "olivedrab" "olivedrab1" "olivedrab2" "olivedrab3"
[497] "olivedrab4" "orange" "orange1" "orange2"
[501] "orange3" "orange4" "orangered" "orangered1"
[505] "orangered2" "orangered3" "orangered4" "orchid"
[509] "orchid1" "orchid2" "orchid3" "orchid4"
[513] "palegoldenrod" "palegreen" "palegreen1" "palegreen2"
[517] "palegreen3" "palegreen4" "paleturquoise" "paleturquoise1"
[521] "paleturquoise2" "paleturquoise3" "paleturquoise4" "palevioletred"
[525] "palevioletred1" "palevioletred2" "palevioletred3" "palevioletred4"
[529] "papayawhip" "peachpuff" "peachpuff1" "peachpuff2"
[533] "peachpuff3" "peachpuff4" "peru" "pink"
[537] "pink1" "pink2" "pink3" "pink4"
[541] "plum" "plum1" "plum2" "plum3"
[545] "plum4" "powderblue" "purple" "purple1"
[549] "purple2" "purple3" "purple4" "red"
[553] "red1" "red2" "red3" "red4"
[557] "rosybrown" "rosybrown1" "rosybrown2" "rosybrown3"
[561] "rosybrown4" "royalblue" "royalblue1" "royalblue2"
[565] "royalblue3" "royalblue4" "saddlebrown" "salmon"
[569] "salmon1" "salmon2" "salmon3" "salmon4"
[573] "sandybrown" "seagreen" "seagreen1" "seagreen2"
[577] "seagreen3" "seagreen4" "seashell" "seashell1"
[581] "seashell2" "seashell3" "seashell4" "sienna"
[585] "sienna1" "sienna2" "sienna3" "sienna4"
[589] "skyblue" "skyblue1" "skyblue2" "skyblue3"
[593] "skyblue4" "slateblue" "slateblue1" "slateblue2"
[597] "slateblue3" "slateblue4" "slategray" "slategray1"
[601] "slategray2" "slategray3" "slategray4" "slategrey"
[605] "snow" "snow1" "snow2" "snow3"
[609] "snow4" "springgreen" "springgreen1" "springgreen2"
[613] "springgreen3" "springgreen4" "steelblue" "steelblue1"
[617] "steelblue2" "steelblue3" "steelblue4" "tan"
[621] "tan1" "tan2" "tan3" "tan4"
[625] "thistle" "thistle1" "thistle2" "thistle3"
[629] "thistle4" "tomato" "tomato1" "tomato2"
[633] "tomato3" "tomato4" "turquoise" "turquoise1"
[637] "turquoise2" "turquoise3" "turquoise4" "violet"
[641] "violetred" "violetred1" "violetred2" "violetred3"
[645] "violetred4" "wheat" "wheat1" "wheat2"
[649] "wheat3" "wheat4" "whitesmoke" "yellow"
[653] "yellow1" "yellow2" "yellow3" "yellow4"
[657] "yellowgreen"
引数distinctをTRUEにすると、RGB値で同じ色を1つにまとめて返してきます。この場合は502色の色名が返ってきます。
[1] "white" "aliceblue" "antiquewhite" "antiquewhite1"
[5] "antiquewhite2" "antiquewhite3" "antiquewhite4" "aquamarine"
[9] "aquamarine2" "aquamarine3" "aquamarine4" "azure"
[13] "azure2" "azure3" "azure4" "beige"
[17] "bisque" "bisque2" "bisque3" "bisque4"
[21] "black" "blanchedalmond" "blue" "blue2"
[25] "blue3" "blue4" "blueviolet" "brown"
[29] "brown1" "brown2" "brown3" "brown4"
[33] "burlywood" "burlywood1" "burlywood2" "burlywood3"
[37] "burlywood4" "cadetblue" "cadetblue1" "cadetblue2"
[41] "cadetblue3" "cadetblue4" "chartreuse" "chartreuse2"
[45] "chartreuse3" "chartreuse4" "chocolate" "chocolate1"
[49] "chocolate2" "chocolate3" "chocolate4" "coral"
[53] "coral1" "coral2" "coral3" "coral4"
[57] "cornflowerblue" "cornsilk" "cornsilk2" "cornsilk3"
[61] "cornsilk4" "cyan" "cyan2" "cyan3"
[65] "cyan4" "darkgoldenrod" "darkgoldenrod1" "darkgoldenrod2"
[69] "darkgoldenrod3" "darkgoldenrod4" "darkgray" "darkgreen"
[73] "darkkhaki" "darkmagenta" "darkolivegreen" "darkolivegreen1"
[77] "darkolivegreen2" "darkolivegreen3" "darkolivegreen4" "darkorange"
[81] "darkorange1" "darkorange2" "darkorange3" "darkorange4"
[85] "darkorchid" "darkorchid1" "darkorchid2" "darkorchid3"
[89] "darkorchid4" "darkred" "darksalmon" "darkseagreen"
[93] "darkseagreen1" "darkseagreen2" "darkseagreen3" "darkseagreen4"
[97] "darkslateblue" "darkslategray" "darkslategray1" "darkslategray2"
[101] "darkslategray3" "darkslategray4" "darkturquoise" "darkviolet"
[105] "deeppink" "deeppink2" "deeppink3" "deeppink4"
[109] "deepskyblue" "deepskyblue2" "deepskyblue3" "deepskyblue4"
[113] "dimgray" "dodgerblue" "dodgerblue2" "dodgerblue3"
[117] "dodgerblue4" "firebrick" "firebrick1" "firebrick2"
[121] "firebrick3" "firebrick4" "floralwhite" "forestgreen"
[125] "gainsboro" "ghostwhite" "gold" "gold2"
[129] "gold3" "gold4" "goldenrod" "goldenrod1"
[133] "goldenrod2" "goldenrod3" "goldenrod4" "gray"
[137] "gray1" "gray2" "gray3" "gray4"
[141] "gray5" "gray6" "gray7" "gray8"
[145] "gray9" "gray10" "gray11" "gray12"
[149] "gray13" "gray14" "gray15" "gray16"
[153] "gray17" "gray18" "gray19" "gray20"
[157] "gray21" "gray22" "gray23" "gray24"
[161] "gray25" "gray26" "gray27" "gray28"
[165] "gray29" "gray30" "gray31" "gray32"
[169] "gray33" "gray34" "gray35" "gray36"
[173] "gray37" "gray38" "gray39" "gray40"
[177] "gray42" "gray43" "gray44" "gray45"
[181] "gray46" "gray47" "gray48" "gray49"
[185] "gray50" "gray51" "gray52" "gray53"
[189] "gray54" "gray55" "gray56" "gray57"
[193] "gray58" "gray59" "gray60" "gray61"
[197] "gray62" "gray63" "gray64" "gray65"
[201] "gray66" "gray67" "gray68" "gray69"
[205] "gray70" "gray71" "gray72" "gray73"
[209] "gray74" "gray75" "gray76" "gray77"
[213] "gray78" "gray79" "gray80" "gray81"
[217] "gray82" "gray83" "gray84" "gray85"
[221] "gray86" "gray87" "gray88" "gray89"
[225] "gray90" "gray91" "gray92" "gray93"
[229] "gray94" "gray95" "gray96" "gray97"
[233] "gray98" "gray99" "green" "green2"
[237] "green3" "green4" "greenyellow" "honeydew"
[241] "honeydew2" "honeydew3" "honeydew4" "hotpink"
[245] "hotpink1" "hotpink2" "hotpink3" "hotpink4"
[249] "indianred" "indianred1" "indianred2" "indianred3"
[253] "indianred4" "ivory" "ivory2" "ivory3"
[257] "ivory4" "khaki" "khaki1" "khaki2"
[261] "khaki3" "khaki4" "lavender" "lavenderblush"
[265] "lavenderblush2" "lavenderblush3" "lavenderblush4" "lawngreen"
[269] "lemonchiffon" "lemonchiffon2" "lemonchiffon3" "lemonchiffon4"
[273] "lightblue" "lightblue1" "lightblue2" "lightblue3"
[277] "lightblue4" "lightcoral" "lightcyan" "lightcyan2"
[281] "lightcyan3" "lightcyan4" "lightgoldenrod" "lightgoldenrod1"
[285] "lightgoldenrod2" "lightgoldenrod3" "lightgoldenrod4" "lightgoldenrodyellow"
[289] "lightgray" "lightgreen" "lightpink" "lightpink1"
[293] "lightpink2" "lightpink3" "lightpink4" "lightsalmon"
[297] "lightsalmon2" "lightsalmon3" "lightsalmon4" "lightseagreen"
[301] "lightskyblue" "lightskyblue1" "lightskyblue2" "lightskyblue3"
[305] "lightskyblue4" "lightslateblue" "lightslategray" "lightsteelblue"
[309] "lightsteelblue1" "lightsteelblue2" "lightsteelblue3" "lightsteelblue4"
[313] "lightyellow" "lightyellow2" "lightyellow3" "lightyellow4"
[317] "limegreen" "linen" "magenta" "magenta2"
[321] "magenta3" "maroon" "maroon1" "maroon2"
[325] "maroon3" "maroon4" "mediumorchid" "mediumorchid1"
[329] "mediumorchid2" "mediumorchid3" "mediumorchid4" "mediumpurple"
[333] "mediumpurple1" "mediumpurple2" "mediumpurple3" "mediumpurple4"
[337] "mediumseagreen" "mediumslateblue" "mediumspringgreen" "mediumturquoise"
[341] "mediumvioletred" "midnightblue" "mintcream" "mistyrose"
[345] "mistyrose2" "mistyrose3" "mistyrose4" "moccasin"
[349] "navajowhite" "navajowhite2" "navajowhite3" "navajowhite4"
[353] "navy" "oldlace" "olivedrab" "olivedrab1"
[357] "olivedrab2" "olivedrab3" "olivedrab4" "orange"
[361] "orange2" "orange3" "orange4" "orangered"
[365] "orangered2" "orangered3" "orangered4" "orchid"
[369] "orchid1" "orchid2" "orchid3" "orchid4"
[373] "palegoldenrod" "palegreen" "palegreen1" "palegreen3"
[377] "palegreen4" "paleturquoise" "paleturquoise1" "paleturquoise2"
[381] "paleturquoise3" "paleturquoise4" "palevioletred" "palevioletred1"
[385] "palevioletred2" "palevioletred3" "palevioletred4" "papayawhip"
[389] "peachpuff" "peachpuff2" "peachpuff3" "peachpuff4"
[393] "peru" "pink" "pink1" "pink2"
[397] "pink3" "pink4" "plum" "plum1"
[401] "plum2" "plum3" "plum4" "powderblue"
[405] "purple" "purple1" "purple2" "purple3"
[409] "purple4" "red" "red2" "red3"
[413] "rosybrown" "rosybrown1" "rosybrown2" "rosybrown3"
[417] "rosybrown4" "royalblue" "royalblue1" "royalblue2"
[421] "royalblue3" "royalblue4" "salmon" "salmon1"
[425] "salmon2" "salmon3" "salmon4" "sandybrown"
[429] "seagreen" "seagreen1" "seagreen2" "seagreen3"
[433] "seashell" "seashell2" "seashell3" "seashell4"
[437] "sienna" "sienna1" "sienna2" "sienna3"
[441] "sienna4" "skyblue" "skyblue1" "skyblue2"
[445] "skyblue3" "skyblue4" "slateblue" "slateblue1"
[449] "slateblue2" "slateblue3" "slateblue4" "slategray"
[453] "slategray1" "slategray2" "slategray3" "slategray4"
[457] "snow" "snow2" "snow3" "snow4"
[461] "springgreen" "springgreen2" "springgreen3" "springgreen4"
[465] "steelblue" "steelblue1" "steelblue2" "steelblue3"
[469] "steelblue4" "tan" "tan1" "tan2"
[473] "tan4" "thistle" "thistle1" "thistle2"
[477] "thistle3" "thistle4" "tomato" "tomato2"
[481] "tomato3" "tomato4" "turquoise" "turquoise1"
[485] "turquoise2" "turquoise3" "turquoise4" "violet"
[489] "violetred" "violetred1" "violetred2" "violetred3"
[493] "violetred4" "wheat" "wheat1" "wheat2"
[497] "wheat3" "wheat4" "yellow" "yellow2"
[501] "yellow3" "yellow4"
重複している色は以下の通りです。
tibble(
color_name = colors()
) |>
mutate(
1 col2rgb(col = color_name) |>
t() |>
data.frame(),
hex = rgb(
red = red,
green = green,
blue = blue,
2 maxColorValue = 255
)
) |>
3 filter(n() > 1, .by = hex) |>
arrange(hex) |>
# for better view on website
rmarkdown::paged_table(options = list(rows.print = 20))- 1
-
col2rgb()は引数colに色の名前を入れるとrgb値を3*1のmatrixで返してきます。なので、t()で転置してwideにしてdata.frameとして返します。列名をつけないことでpackされずにそのまま列として返ってきます。 - 2
- デフォルトでは1なので255にします。
- 3
-
「同一要素が存在する要素のみ抽出」を
tidyverse関数群だけで多分一番短く書ける式だけど、なんでちゃんと動くかあんまりわかってない。hex列の要素でグルーピングしてn()でサイズを数えてそれが1より大きいかどうかというpredicateな式になっているからだとは思います。組み込み関数でやるならfilter(duplicated(hex) | duplicated(hex, fromLast = TRUE))。
Notebuilt-in functions
data.frame(
color_name = colors()
) |>
transform(
1 hex = col2rgb(color_name) |>
apply(
MARGIN = 2,
FUN = \(x) {
rgb(
red = x[1],
green = x[2],
blue = x[3],
maxColorValue = 255
)
}
)
) |>
subset(duplicated(hex) | duplicated(hex, fromLast = TRUE)) |>
sort_by(~hex) |>
head(10)- 1
-
transform()はtag = valueの形式が必須らしいので、apply(MARGIN = 2, ...)を使っていきなりhex列を作りました。別にtemp = col2rgb() |> ...にしてもいいんですが、dplyr::mutate()と違って、作られる列にtemp.のsuffixがつくのと、transform()内で作成した新規の列は同じtransform()内で新たに使えないっぽいのでもう一度パイプを挟んでtransform()を使う必要があるみたいです。
color_name hex
24 black #000000
153 gray0 #000000
261 grey0 #000000
490 navy #000080
491 navyblue #000080
30 blue4 #00008B
73 darkblue #00008B
29 blue3 #0000CD
461 mediumblue #0000CD
26 blue #0000FF
数が多いですが、半分くらいがgray(アメリカ英語)とgrey(イギリス英語)の被りです。gray/greyはほとんど置換可能なんですが、(dark)slategray1-4はgrayしかありません。
list(
gray_only = c("gray", "grey"),
grey_only = c("grey", "gray")
) |>
map(
.f = \(color_name) {
str_subset(
colors(),
pattern = color_name[1]
) |>
1 discard(
.p = \(x) {
str_replace(
x,
pattern = color_name[1],
replacement = color_name[2]
) |>
`%in%`(colors())
}
)
}
)- 1
-
purrr::discard()は第一引数.xの要素を引数.pで書かれたpredicate関数で評価させて、FALSEになる要素だけ返してきます。TRUEを返すものだけ残したい場合はpurrr::keep()を使います。やってることは、[str_replace()]grayとgreyを入れ替え→[%in%()]入れ替えたものがcolors()に存在するか評価→[.p = \(x) {}]TRUE/FALSEが返ってくるのでそれが.xのインデックスになる→[discard()]インデックスがFALSEである.xの要素のみ返ってくる。
$gray_only
[1] "darkslategray1" "darkslategray2" "darkslategray3" "darkslategray4" "slategray1"
[6] "slategray2" "slategray3" "slategray4"
$grey_only
character(0)
Notebuilt-in functions
list(
gray_only = c("gray", "grey"),
grey_only = c("grey", "gray")
) |>
lapply(
FUN = \(color_name) {
grep(
pattern = color_name[1],
x = colors(),
value = TRUE
) |>
(\(x) {
1 gsub(
pattern = color_name[1],
replacement = color_name[2],
x = x
) |>
`%in%`(colors()) |>
xor(y = TRUE) |>
`[`(x, i = _)
}) ()
}
)- 1
-
x[!gsub(pattern = color_name[1], replacement = color_name[2], x = x) %in% colors()]をlintrに怒られない文字数で書くためにパイプラインで書くとこうなります。可読性が低すぎてヤバい。やってることは上と同じです。TRUE/FALSEの逆転は、xor(x = ..., y = TRUE)を使って(x = TRUE, y = TRUE)をFALSEに、(x = FALSE, y = TRUE) をTRUEにすることで処理。(\(x) {!x}) ()でも可。
$gray_only
[1] "darkslategray1" "darkslategray2" "darkslategray3" "darkslategray4" "slategray1"
[6] "slategray2" "slategray3" "slategray4"
$grey_only
character(0)
appearance
実際の色はこちら。greyだけ省いています。gt::opt_interactive()をいじってインタラクティブな表にしてみました。
Code
colors() |>
str_subset(
pattern = "grey",
negate = TRUE
) |>
tibble(
col_name = _,
col_fill = "",
col_text_w = "The quick brown fox jumps over the lazy dog.",
col_text_b = col_text_w
) |>
mutate(
col2rgb(col = col_name) |>
t() |>
data.frame(),
col_hex = rgb(
red = red,
green = green,
blue = blue,
maxColorValue = 255
)
) |>
relocate(col_hex, .after = 1) |>
select(starts_with("col_")) |>
gt() |>
tab_style(
style = cell_fill(color = from_column(column = "col_name")),
locations = cells_body(columns = col_fill)
) |>
tab_style(
style = cell_borders(color = "black"),
locations = cells_body(columns = col_fill)
) |>
tab_style(
style = cell_text(color = from_column(column = "col_name")),
locations = cells_body(columns = starts_with("col_text"))
) |>
tab_style(
style = cell_fill(color = "black"),
locations = cells_body(columns = col_text_b)
) |>
tab_header(title = "Built-in Color Names in R.") |>
tab_footnote(
footnote = '"gray" can be replaced with "grey" except for (dark)slategray1-4.'
) |>
opt_footnote_marks(marks = "standard") |>
tab_source_note(
source_note = md("From `grDevices::colors()`.")
) |>
cols_width(
col_name ~ px(180),
col_hex ~ px(100),
col_fill ~ px(100)
) |>
cols_label(
col_name = "Color name",
col_hex = "Hex",
col_fill = "",
col_text_w = "BG: white",
col_text_b = "BG: black"
) |>
# for better view on website
opt_interactive(
1 use_filters = TRUE,
2 use_page_size_select = TRUE,
3 page_size_values = c(seq(10, 100, 10), seq(200, 600, 100))
)- 1
- フィルタリング機能が使えます。列名の下のテキストボックスに文字を入れるとフィルターされます。
- 2
- 1ページ当たりの表示行数を変更可能にできます。
- 3
- 1ページ当たりの表示行数の選択肢を設定できます。
Built-in Color Names in R.
From
grDevices::colors(). "gray" can be replaced with "grey" except for (dark)slategray1-4.
画像の一覧表も作ってみました。こちらもgreyは省いています。重いです(.pngで430KB程度)。QuartoのLightbox機能をonにしたので、クリックすると大きくなります。
Code
colors() |>
str_subset(
pattern = "grey",
negate = TRUE
) |>
str_replace(
pattern = "(\\d+)",
replacement = \(x) {
str_pad(
x,
width = 3,
side = "left",
pad = 0
)
}
) |>
sort() |>
str_remove(
pattern = "(?<=\\D)0{1,2}"
) |>
tibble(
name = _,
fill = "",
col_num = rep(1:12, times = c(rep(46, 9), rep(45, 3)))
) |>
group_by(col_num) |>
group_map(
.f = \(x, idx) {
rename_with(
x,
.fn = ~str_c(.x, idx, sep = "_")
)
}
) |>
do.call(
what = gdata::cbindX,
args = _
) |>
gt() |>
(\(x) {
paste0(
' |> tab_style(style = cell_fill(color = from_column(column = "name_',
1:12,
'", na_value = "white")), locations = cells_body(column = fill_',
1:12,
"))"
) |>
paste(collapse = "") |>
paste("x", y = _, sep = "") |>
parse(text = _) |>
eval()
}) () |>
tab_style(
style = cell_borders(color = "black"),
locations = cells_body(columns = starts_with("fill"))
) |>
tab_style(
style = cell_borders(
sides = "right",
color = "black"
),
locations = cells_column_labels(columns = starts_with("fill"))
) |>
tab_style(
style = cell_text(
font = "HackGen",
indent = px(10)
),
locations = cells_body(columns = starts_with("name"))
) |>
sub_missing(
missing_text = ""
) |>
cols_width(
starts_with("name") ~ px(190),
starts_with("fill") ~ px(50)
) |>
tab_header(title = md("Built-in Color Names in R. (From `grDevices::colors()`)")) |>
tab_footnote(
footnote = '"gray" can be replaced with "grey".',
locations = paste0(
"cells_body(columns = name_",
1:12,
", rows = str_detect(name_",
1:12,
', pattern = "gray") & !str_detect(name_',
1:12,
', pattern = "slate.*[1-4]"))'
) |>
paste(collapse = ", ") |>
paste0(
"list(",
x = _,
")"
) |>
parse(text = _) |>
eval()
) |>
opt_footnote_marks(marks = "standard") |>
cols_label(
starts_with("name") ~ "Name",
starts_with("fill") ~ ""
) |>
tab_options(
table.margin.right = px(10),
table.margin.left = px(10),
data_row.padding = px(7)
) |>
gtsave(
"20260102_builtin_colorname_gt.png",
vwidth = 3500,
zoom = 1.2
)Conclusion
colors()で出せる、Rに標準で用意されている色の名前を見ていきました。grayとgreyが完全置換可能じゃないのは驚きました。
Session Infomation
Notesessioninfo
R version 4.4.2 (2024-10-31 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows 11 x64 (build 26100)
Matrix products: default
locale:
[1] LC_COLLATE=Japanese_Japan.utf8 LC_CTYPE=Japanese_Japan.utf8 LC_MONETARY=Japanese_Japan.utf8
[4] LC_NUMERIC=C LC_TIME=Japanese_Japan.utf8
time zone: Asia/Tokyo
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] gdata_3.0.1 gt_1.2.0 lubridate_1.9.4 forcats_1.0.0 stringr_1.5.1 dplyr_1.1.4
[7] purrr_1.1.0 readr_2.1.5 tidyr_1.3.1 tibble_3.3.0 ggplot2_3.5.2 tidyverse_2.0.0
loaded via a namespace (and not attached):
[1] sass_0.4.10 generics_0.1.4 xml2_1.4.0 gtools_3.9.5 stringi_1.8.7
[6] hms_1.1.3 digest_0.6.37 magrittr_2.0.3 evaluate_1.0.5 grid_4.4.2
[11] timechange_0.3.0 RColorBrewer_1.1-3 fastmap_1.2.0 jsonlite_2.0.0 processx_3.8.6
[16] chromote_0.5.1 ps_1.9.1 promises_1.3.3 crosstalk_1.2.1 scales_1.4.0
[21] cli_3.6.5 rlang_1.1.6 litedown_0.7 commonmark_2.0.0 reactR_0.6.1
[26] base64enc_0.1-3 withr_3.0.2 yaml_2.3.10 tools_4.4.2 tzdb_0.5.0
[31] pacman_0.5.1 vctrs_0.6.5 R6_2.6.1 lifecycle_1.0.4 reactable_0.4.4
[36] fs_1.6.6 htmlwidgets_1.6.4 pkgconfig_2.0.3 later_1.4.2 pillar_1.11.0
[41] gtable_0.3.6 Rcpp_1.1.0 glue_1.8.0 xfun_0.52 tidyselect_1.2.1
[46] rstudioapi_0.17.1 knitr_1.50 farver_2.1.2 websocket_1.4.4 htmltools_0.5.8.1
[51] webshot2_0.1.2 rmarkdown_2.29 compiler_4.4.2 markdown_2.0
