我试图从Hadley Wickham的ggplot2 book复制图6.11,它在Luv空间中绘制R颜色;点的颜色代表自己,没有传说是必要的。
以下是两次尝试:
library(colorspace)
myColors <- data.frame("L"=runif(10000, 0,100),"a"=runif(10000, -100, 100),"b"=runif(10000, -100, 100))
myColors <- within(myColors, Luv <- hex(LUV(L, a, b)))
myColors <- na.omit(myColors)
g <- ggplot(myColors, aes(a, b, color=Luv), size=2)
g + geom_point() + ggtitle ("mycolors")
第二次尝试:
other <- data.frame("L"=runif(10000),"a"=runif(10000),"b"=runif(10000))
other <- within(other, Luv <- hex(LUV(L, a, b)))
other <- na.omit(other)
g <- ggplot(other, aes(a, b, color=Luv), size=2)
g + geom_point() + ggtitle("other")
有几个明显的问题:
非常感谢。
答案 0 :(得分:5)
你得到了奇怪的颜色,因为aes(color = Luv)
说“为列Luv
中的每个唯一字符串指定颜色”。如果您将color
分配到aes
之外,如下所示,则表示“使用这些显式颜色”。我认为这样的事情应该与你提出的数字接近。
require(colorspace)
x <- sRGB(t(col2rgb(colors())))
storage.mode(x@coords) <- "numeric" # as(..., "LUV") doesn't like integers for some reason
y <- as(x, "LUV")
DF <- as.data.frame(y@coords)
DF$col <- colors()
ggplot(DF, aes( x = U, y = V)) + geom_point(colour = DF$col)