R绘图基础指南 | 3. 散点图(合集)

Python016

R绘图基础指南 | 3. 散点图(合集),第1张

目录

3. 散点图

3.1 绘制基本散点图

3.2 使用点形和颜色属性进行分组

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

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

3.5 处理图形重叠

3.6 添加回归模型拟合线

3.7 根据已有模型向散点图添加拟合线

3.8 添加来自多个模型的拟合线

3.9 向散点图添加模型系数

3.10 向散点图添加边际地毯

3.11 向散点图添加标签

3.12 绘制气泡图

3.13 绘制散点图矩阵往期文章参考书籍

散点图通常用于刻画两个连续型变量之间的关系。绘制散点图时,数据集中的每一个观测值都由每个点表示。

方法:

值得注意的是: loess() 函数只能根据数据对应的x轴的范围进行预测。如果想基于数据集对拟合线进行 外推 ,必须使用支持外推的函数,比如 lm() ,并将 fullrange=TRUE 参数传递给 stat_smooth() 函数。

使用 lm() 函数建立一个以 ageYear 为预测变量对 heightIn 进行预测的模型。然后,调用 predict() 函数对 heightIn 进行预测。

根据变量 sex 的水平对 heightweight 数据集进行分组,调用 lm() 函数对每组数据分别建立线性模型,并将模型结果放在一个列表内。随后,通过下面定义的 make_model() 函数建立模型。

调用 annotate() 函数在图形中添加文本。

调整标签位置,大家自行尝试。

如何只对自己想要的数据点添加标签。

调用 geom_point() 和 scale_size_area() 函数即可绘制气泡图。

如果x轴,y轴皆是分类变量,气泡图可以用来表示网格上的变量值。

散点图矩阵是一种对多个变量两两之间关系进行可视化的有效方法。pairs()函数可以绘制散点图矩阵。

散点图是将所有的数据以点的形式展现在直角坐标系上,以显示变量之间的相互影响程度,点的位置由变量的数值决定,每个点对应一个 X 和 Y 轴点坐标。散点图可以用R自带的plot()函数绘制,也可以用ggplot2包的geom_point()和 geom_dotplot()函数来绘制,当使用geom_dotplot()绘图时,point的形状是dot,不能改变点的形状,因此,geom_dotplot 叫做散点图(Scatter Plot),通过绘制点来呈现数据的分布,对点分箱的方法有两种:点密度(dot-density )和直方点(histodot)。当使用点密度分箱(bin)方式时,分箱的位置是由数据和binwidth决定的,会根据数据进行变化,但不会大于binwidth指定的宽度;当使用直方点分箱方式时,分箱有固定的位置和固定的宽度,就像由点构成的直方图(histogram)。

基本语法:

x 横坐标 x 轴的数据集合;

y 纵坐标 y 轴的数据集合;

type:绘图的类型,p 为点、l 为直线, o 同时绘制点和线,且线穿过点;

main:图表标题;

xlab、ylab x 轴和 y 轴的标签名称;

xlim、ylim x 轴和 y 轴的范围;

axes 布尔值,是否绘制两个 x 轴。

p:点图;

l:线图;

b:同时绘制点和线;

c:仅绘制参数 b 所示的线;

o:同时绘制点和线,且线穿过点;

h:绘制出点到横坐标轴的垂直线;

s:阶梯图,先横后纵;

S:阶梯图,先纵后竖;

n: 空图。

美化后的散点图

散点图矩阵是借助两变量散点图的作图方法,它可以看作是一个大的图形方阵,其每一个非主对角元素的位置上是对应行的变量与对应列的变量的散点图。而主对角元素位置上是各变量名,这样,借助散点图矩阵可以清晰地看到所研究多个变量两两之间的相关关系。散点图矩阵就是把数据集中的每个数值变量两两绘制散点图,这里我们用pairs()函数绘制。

把直方图放在对角线上

geom_point()函数用于创建散点图。散点图对于显示两个连续变量之间的关系最有用。它可以用于比较一个连续变量和一个类别变量,或者两个类别变量,但是像geom_jitter()、geom_count()或geom_bin2d()这样的变体通常更合适。气泡图是一个散点图,第三个变量映射到点的大小。

https://www.r-graph-gallery.com/

原文见 http://www.win-vector.com/blog/2018/10/scatterplot-matrices-pair-plots-with-cdata-and-ggplot2/

散点图矩阵就是把数据集中的每个数值变量两两绘制散点图。基础的R包,绘图函数是pairs()。这是基础包绘制的iris数据集的一个例子:

另外的绘图方式还有几种。

用R包中cdata绘制一下散点矩阵图

首先是加载相关的R包

然后按照需求重塑数据

然后用facet_grid创建图形