赞
踩
离散型标度scale_linetype() scale_shape()和scale_size_discrete()基本上没有选项。这些标度仅仅是按一定的顺序将因子平映射到一系列取值中
如果想要定制这些标度,需要使用以下手动型标度创建新的标度:scale_shape_manual() scale_linetype_manual() scale_color_manual()
手动型标度有一个重要的参数values,可以使用它来指定这个标度应该生成的值,如果这个向量是有名称的,则它将自动匹配输入和输出的值,否则它将按照离散型变量中的水平先后次序进行匹配。需要了解一些可用的图形属性值,详见vignette(“ggplot2-specs”)
下面的代码展示了**scale_color_manual()**的使用方法
plot <- ggplot(msleep, aes(brainwt, bodywt)) +
scale_x_log10() + scale_y_log10()
plot + geom_point(aes(color = vore)) +
scale_color_manual(values = c("red", "orange", "green", "blue"), na.value = "grey50")
colors <- c(carni = "red", insecti = "orange", herbi = "green", omni = "blue")
plot + geom_point(aes(color = vore)) +
scale_color_manual(values = colors)
下例展示了**scale_color_manual()**的创意用法。在多数其它的图形系统中,只需像下图一样把线上色,然后添加一个图例说明哪种颜色对应着哪个变量就可以了
huron <- data.frame(year = 1875:1972, level = as.numeric(LakeHuron))
ggplot(huron, aes(year)) +
geom_line(aes(y = level + 5), color = "red") +
geom_line(aes(y = level - 5), color = "blue")
下面的例子对ggplot2不适用,图例由标度绘制,标度不知道要为线条加哪种标签
ggplot(huron, aes(year)) +
geom_line(aes(y = level + 5, color = "above")) +
geom_line(aes(y = level - 5, color = "below"))
然后告诉标度如何将标签映射到颜色中
ggplot(huron, aes(year)) +
geom_line(aes(y = level + 5, color = "above")) +
geom_line(aes(y = level - 5, color = "below")) +
scale_color_manual("Direction", values = c("above" = "red", "below" = "blue"))
当数据能被R中的绘图函数理解时,即数据空间和图形属性空间相同时,可以使用同一型标度(identity value)
下面的代码展示了同一型标度的用途。luv_colors包括R中在LUV颜色空间(HCL也是基于它)中所有自带的颜色。图例不是必须的,因为点颜色代表它自己:数据和图形属性的空间是相同的
head(luv_colours)
ggplot(luv_colours, aes(u, v)) +
geom_point(aes(color = col), size = 3) +
scale_color_identity() + coord_equal()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。