ggplot2-定位3

1. 连续型变量

连续型变量进行分面,首先要将其离散化,ggplot2提供了三个辅助函数

  1. 将数据划分为n个长度相同的部分:cut_interval(x, n)
  2. 将数据划分为宽度分别为width的部分:cut_width(x, witdh)
  3. 将数据划分为n个有(大致)相同数目点的部分:cut_number(x, n = 10)

下面展示了三种方式

# 划分为宽度为1的部分
mpg2$disp_w <- cut_width(mpg2$displ, 1)

# 6个相同宽度的部分
mpg2$disp_i <- cut_interval(mpg2$displ, 6)

# 6个有一样多数目点的部分
mpg2$disp_n <- cut_number(mpg2$displ, 6)

plot <- ggplot(mpg2, aes(cty, hwy)) +
	geom_point() +
	labs(x = NULL, y = NULL)
plot + facet_wrap(~disp_w, nrow = 1)
plot + facet_wrap(~disp_i, nrow = 1)
plot + facet_wrap(~disp_n, nrow = 1)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

需要注意的是,分面公式不会对函数进行求值,所以必须首先创建一个包含了离散化数据的新变量

2. 坐标系

坐标系主要有两大功能

  1. 将两个位置图像属性组合起来,在图像中形成2维方位系统。位置图像属性分别被称为x和y,但将它们称作位置1和位置2可能会更合适,因为图像位置属性的名字会随着坐标系的不同而不同。比如极坐标系中将其称为角度和半径(或半径和角度),而地图中则称为纬度和经度
  2. 配合分面,坐标系将绘出坐标轴和面板背景。标度控制着坐标轴上出现的数值,并将数据映射到图像中的位置,然后通过坐标系将它们绘制出来,图像的外观随着坐标系的变化而变化,毕竟角度轴和x轴看起来是很不同的

坐标系有两种。线性坐标系保持了几何对象的形状

  • coord_cartesian():默认的笛卡尔坐标系,一个元素的2维位置用x和y的组合进行表示
  • coorf_fixed():宽高比固定的直角坐标系
  • coord_flip():x轴和y轴翻转了的笛卡尔坐标系

另一方面,非线性坐标系可以改变形状:一条直线可能不再是直线。两点之间的最短距离可能不再是直线

  • coord_map()/coord_quickmap():地图投影
  • coord_polar():极坐标系
  • coord_trans():对数据进行统计变换之后,对x和y位置进行任意变换

3. 线性坐标系

线性坐标系有3种:coord_cartesian()、coord_fixed()和coord_flip()

coord_cartesian()放大图像

函数coord_cartesian()有参数xlim和ylim。标度的范围限制参数可以控制图像的显示范围。标度和coord_cartesian()存在差异,两者的主要区别在于如何进行限制:设置标度的范围限制的时候,抛弃了所有在范围以外的数据,但是在设置坐标系范围的时候,仍然使用所有数据,只是只显示了图像的一小片地方。设置坐标系范围相当于使用放大镜来观察图像

base <- ggplot(mpg, aes(displ, hwy)) +
	geom_point() + geom_smooth()

# 完整的数据集
base
# 标度改为5到7之间,抛弃了范围以外的数据
base + scale_x_continuous(limits = c(5, 7))
# 放大到5到7之间,保存着所有数据,不过只展示其中一部分
base + coord_cartesian(xlim = c(5, 7))

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

coord_flip()翻转坐标轴

大多数统计量和几何形状都假设对基于x条件下的y值感兴趣(比如说,平滑、汇总、箱线图、直线):大部分统计模型都假设测量x的值的时候是没有误差的。如果对基于y条件下的x值感兴趣(或者只是想把图像翻转90°),可以使用coord_flip()来交换x轴和y轴
以下代码将翻转坐标轴和交换x、y变量位置的效果进行了比较

ggplot(mpg, aes(displ, cty)) +
	geom_point() + geom_smooth()
# 交换cty和displ,90°翻转了图像
# 不过平滑曲线是对翻转后的数据进行拟合的
ggplot(mpg, aes(cty, displ)) +
	geom_point() + geom_smooth()
# coord_flip()将平滑函数对原来的数据进行了拟合
# 然后翻转了输出
ggplot(mpg, aes(displ, cty)) +
	geom_point() + geom_smooth() +
	coord_flip()

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

coord_fixed()固定相等标度

coord_fixed()固定了x轴和y轴的长度比例。默认的ratio确保了x轴和y轴有相同的标度:比如说,x轴上的1厘米和y轴上的1厘米表示了相同范围的数据。宽高比也会被自动设定,从而确保在不同输出设备形状下的投影效果依然保持一致。可查阅coord_fixed()文档以获取更多细节

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值