ggplot2-标度、坐标轴和图例9

1. 手动离散型标度

离散型标度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"))

在这里插入图片描述

2. 同一型标度

数据能被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()

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值