ggplot2中的scale

我们上篇文章介绍的是ggplot2中的theme函数,主要用于调整图片主题,简单来说就是调整图中一些元素的大小,字体,颜色等等,图中展示的内容是不会改变的。

而今天介绍的scale函数则是用来调整图中的内容范围。引用王敏杰老师的话“标度(scale)是用于调整数据映射的图形属性。”

可能我这么说还是显得比较模糊,那就先举个例子:

p=ggplot(mtcars,aes(mpg,disp))+geom_point()
p+scale_x_continuous(“MPG”,breaks = c(15,25,35))
在这里插入图片描述

在这里插入图片描述

看到这个结果,大家也许会觉得上图到下图不也可以用xlab和xlim函数吗,确实是这样的,但Wickham大佬在最初设计时保留了scale函数,为了方便才出现了xlab,xlim,同时在默认的情况下,R会根据数据范围画出很好看的图,所以scale函数就被省略了,以至于很多人都不知道,也不会使用scale函数。

好的,我们开始今天的内容。首先来看看scale有哪些类型吧~

在这里插入图片描述

看到上图大家是不是有种似曾相识的感觉,特别是见到color, size, fill。是的,比如我们在用ggplot2画散点时,经常用color, size, fill等映射到点上,不同的颜色代表不同的分组,不同的点大小代表值的大小等等,然后会生成一个图例。而这个scale函数就是用来调整这些颜色,大小同时修改legend。

这个函数的基本构成是:

scale_映射类型_数据类型()

映射类型:xy轴,size, color(边框颜色), fill(填充颜色), shape, alpha, linetype.

数据类型:连续型,分散型,自定义,同一型。

接下来,用几个常用的函数来展示一下它的功能。
1.x轴修改(scale_x_continuous)

p+scale_x_continuous(“MPG”,breaks = c(15,25,35),
labels = c(“a”,“b”,“c”),position = “top”)

在这里插入图片描述

#x轴名改为“MPG”,x轴设置15,25,35三个刻度,并改名为“a”,“b”,“c”,同时把坐标轴放在图的上方。
2.修改颜色映射(scale_color_continuous)

p=ggplot(mtcars,aes(mpg,disp,color=cyl))+geom_point()
p+scale_color_continuous(“CYLCYL”,breaks = c(5,7),
labels = c(“a”,“b”),type = “viridis”)

在这里插入图片描述

#第一个位置“CYLCYL”设置为图例的名字,type为颜色设置,采用了viridis色带。
3.颜色自定义修改(适用于离散数据,scale_colour_manual)

p <- ggplot(mtcars, aes(mpg, wt)) +
geom_point(aes(colour = factor(cyl)),size=3)
p + scale_colour_manual(
values = c("#CD5B45","#E69F00","#0072B2"),
breaks = c(“4”, “6”, “8”),
labels = c(“a”, “b”, “c”),
name=“hahaha”)

在这里插入图片描述

#画图的时候将cyl设置为因子型。接下来scale_colour_manual函数把点的颜色自定义,然后是cyl的范围为4,6,8,标签为“a”,“b”,“c”,最后是图例名字的修改。

以上三个例子我认为是最常见的,如果能把scale和theme函数掌握,那想要调整图中的小细节就很容易了。其他scale相关的函数请参考wickham的《R for Data Science》。

好了,今天的分享就到这啦~
对R语言和森林生态感兴趣的同学请关注我的微信公众号哟~
在这里插入图片描述

参考资料:
《数据科学中的R语言》—— 王敏杰

《R for Data Science》—Hadley Wickham

CSDN

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值