在 scale_gradientn 的 ggplot2示例中(倒数第二个图形):
dsub <- subset(diamonds, x > 5 & x < 6 & y > 5 & y < 6)
dsub$diff <- with(dsub, sqrt(abs(x-y))* sign(x-y))
(d <- qplot(x, y, data=dsub, colour=diff))
max_val <- max(abs(dsub$diff))
values <- seq(-max_val, max_val, length = 11)
d + scale_colour_gradientn(colours = topo.colors(10), values = values, rescale = FALSE)
使用“形状”符号时如何根据数据值进行填充,即:
(d <- qplot(x, y, data=dsub, fill=diff, colour="black", shape=21)) # Does not work
但是使用黑色边框和基于数据的填充而不是基于数据的边框颜色?
编辑:
建议的解决方案不太奏效。我所需要的只是能够在上面显示的示例中使用 shape=21 来获得相同的填充颜色,但带有黑色边框,即:
dsub <- subset(diamonds, x > 5 & x < 6 & y > 5 & y < 6)
dsub$diff <- with(dsub, sqrt(abs(x-y))* sign(x-y))
max_val <- max(abs(dsub$diff))
values <- seq(-max_val, max_val, length = 11)
ggplot(dsub) +
geom_point(aes(x=x,y=y, data=dsub, colour=diff), size=3) +
scale_colour_gradientn(colours = topo.colors(10), values = values, rescale = FALSE)
但使用 shape=21 以便有黑色边框并且填充是相同的。这会为轮廓着色,而不是填充:
ggplot(dsub) +
geom_point(aes(x=x,y=y, data=dsub, colour=diff), size=3, shape=21) +
scale_colour_gradientn(colours = topo.colors(10), values = values, rescale = FALSE)
这没有正确填写:
ggplot(dsub) +
geom_point(aes(x=x,y=y, data=dsub, fill=diff), size=3, shape=21) +
scale_colour_gradientn(colours = topo.colors(10), values = values, rescale = FALSE)