R语言—散点图

一.绘制基本散点图

如何绘制散点图

方法

 1)使用plot函数可绘制散点图,运行命令时依次传递给plot()函数一个向量x和一个向量y


 2)使用ggplot函数,运行geom_point()函数,分别映射一个变量到x和y

          heightweight是个多列数据集



ps:通过设定点形参数可以在散点图中绘制默认值以外的点形(系统默认为为2),如:


二.使用点形和颜色属性,并基于某变量对数据进行分组

如何基于某个变量对数据进行分组,并用形状和颜色属性来表示

方法:

将分组变量映射给点形(shape)和颜色(colour)属性。



可以将一个变量同时映射给shape和colour属性


通过调用scale_shape_manual()函数可以使用其他点形,调用scale_colour_brewer()或者scale_colour_manual()函数可以使用其他调色板,


三.使用不同于默认设置的点形

方法:

通过指定geom_point()函数中的点形(shape)参数可以设定散点图中所有数据点点形


如果已将分组变量映射给shape,则可以调用scale_shape_manual函数来修改点形


R绘图系统可以调用的点形


点形1—20的点的颜色,包括实心区域的颜色都可由colour参数来控制,对于点形21-25而言,边框线和实心区域的颜色则分别由colour和fill参数控制

四.将连续性变量映射到点的颜色或大小属性上

如何使用散点图中的颜色和大小属性来刻画第三个连续型变量

方法:

将连续型变量映射到size或colour属性上即可。如:



讨论:基本散点图通过将两个连续型变量分别映射给x轴和y轴来刻画它们之间的关系,当变量超过两个时,我们必须将它们映射到其他图形属性上,如数据点的大小和颜色。

当我们把一个连续性变量映射给某个图形属性之后,这并不妨碍我们同时将分类变量映射给其他图形属性

如图:将变量weightLb映射给点size属性,同时将变量sex映射给colour属性。(图形中有很多重合的数据点,因此用alpha=.5设定为半透明)


注意:将某个变量映射给size属性时,最好避免将其他变量映射给shape属性,因为不同点形的点大小很难相互比较,比如,大小为4的三角形看起来比大小为3.5的圆形更小。

五.处理图形重叠

散点图中有大量数据点时,如何避免它们相互重叠?


针对大数据集绘制散点图时,图中各个数据点会被彼此遮盖,从而妨碍我们准确地评估数据的分布信息,这就是所谓的图形重叠,如果图形重叠程度较低,我们可以通过使用较小的数据点或者使用不会遮盖其他数据点的点形来避免数据重叠

如果图形的重叠程度较高,下面是一系列可行的方法:

1.使用半透明的点


2.将数据分箱(bin),并用矩阵表示(适用于量化分析)

   stat_bin_2d()函数分别在x轴和y轴方向上将数据分割为30个组,总计900个箱子

   scale_fill_gradient()重新设定数据点的颜色


3.将数据分箱(bin),并用六边形表示


对于这两种方法,在手动设置分箱范围时,因为数据点太多或太少,会出现一个在分箱范围外的箱子,且这个箱子的颜色会显示为灰色,而不是最大或最小值对应的颜色

4.使用箱线图

当散点图的其中一个数据轴或者两个数据轴都对应于离散型数据时,也会出现图形重叠的情况


这时候可以调用position_jitter()函数给数据点增加随机扰动。默认情况下,该函数在每个方向上添加的扰动值为数据点最小精度的40%,不过,也可以通过width和height参数对该值进行调整。

添加随机扰动:


调用geom_point(position = "jitter")和geom_jitter()是等价的

只在水平方向上添加随机扰动


当数据集对应于一个离散型数据轴和一个连续型数据轴时,箱线图可能是一种较好的展示方式,如下图。箱线图所表现的信息与散点图略有不同,因为他很难反应出离散坐标轴上每个位置的数据点数量的信息,箱线图的绘制方式有时是缺点,但有时候却是恰如其分的可视化方法。

对于Chickweights数据集,其对应于x轴上的数据是离散的,但其被存储为数值型向量,因此,ggplot()不知该如何对该数据集进行分组,调用aes(group=...)可以告诉ggplot如何对数据进行分组


六.添加回归模型拟合线

运行stat_smooth()函数并设定method_1m即可向散点图中添加线性回归拟合线,这将调用1m()函数对数据拟合线性模型。首先,我们将在基本绘图对象存储在对象sp中,然后,再添加更多的图形部件





  • 49
    点赞
  • 293
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值