色名に関する関数
r-help ML の Gabor Grothendieck の記事より(Sun 29 Jun 2003)
colors.hex と colors.name は色名を16進コード(またその逆)へ変換する。各色名はユニークな16進コードを持つが、16進コードは一つ以上の色名を持つ可能性があることを注意。
colors.hex <- function( x=colors() ) { color.hex <- function(x) do.call( "rgb", as.list(col2rgb(x)/255) ) sapply( x, color.hex ) } colors.name <- function( x ) { color.name <- function( x ) colors()[ colors.hex() == x ] lapply( x, color.name ) }
例
colors.hex( "red" ) colors.hex( colors()[1:5] ) colors.name( "#FF0000" ) colors.name( rainbow(3) ) colors.name( rainbow(7) ) # 最初の要素だけが名前を持つ
LL はすべての色名を同じ16進コードを持つ同値類に分割する。 LL2 は同様であるが、一つ以上の色名を持つ同値類だけを持つ。
LL <- by( colors(), colors.hex(), as.vector ) LL2 <- LL[ lapply( LL, length ) > 1 ]