ggplot2学习笔记系列之利用ggplot2绘制散点图

taoyan
1 简介
2 绘制简单的散点图
2.1 shape参数修改图形的形状
2.2 size参数修改点的大小
2.3 color参数修改点的颜色
3 绘制分组的散点图
3.1 首先将数值型变量cyl转换为因子型变量
3.2 分组变量赋值给颜色属性(变量赋值必须在aes里面)
3.3 分组变量赋值给性状属性
4 将连续变量映射给颜色、大小和形状等属性
4.1 将连续性变量disp映射给颜色属性
4.2 将连续性变量disp映射给大小属性
5 重叠点的处理
6 为散点图添加拟合曲线

1 简介
散点图通常用来刻画两个连续型变量之间的关系。绘制散点图时数据集中的每一个观测值都由散点图中的一个点来表示。利用包ggplot2可以绘制十分漂亮的散点图。 利用ggplot2绘图前先确保我们所使用的数据集是data.frame形式。ggplot2绘图利用映射将数据赋予给坐标轴上进而添加几何对象形成图形。绘图前先加载包ggplot2library(ggplot2)

#Load packages
library(ggplot2)#visualization

加载完包之后,本文利用数据集mtcars来演示散点图绘制。 先查看数据集的前几行来了解mtcars数据集。

#check data
head(mtcars)

2 绘制简单的散点图

ggplot(data=mtcars, aes(x=wt, y=mpg)) + geom_point()


2.1 shape参数修改图形的形状
可选点图形形状:

ggplot(data=mtcars, aes(x=wt, y=mpg)) +geom_point(shape=17)

2.2 size参数修改点的大小

ggplot(data = mtcars, aes(x=wt, y=mpg))+geom_point(size=5)

2.3 color参数修改点的颜色

ggplot(data=mtcars, aes(x=wt, y=mpg))+geom_point(color="red")


3 绘制分组的散点图
可将分组变量(因子或字符变量,可通过factor()强制性将非因子变量转为因子变量)赋值给颜色或性状属性,实现分组散点图的绘制。
3.1 首先将数值型变量cyl转换为因子型变量

mtcars$cyl <- factor(mtcars$cyl)

3.2 分组变量赋值给颜色属性(变量赋值必须在aes里面)

ggplot(data=mtcars, aes(x=wt, y=mpg, color=cyl))+geom_point(size=3)

3.3 分组变量赋值给性状属性

ggplot(data=mtcars, aes(x=wt, y=mpg, shape=cyl))+geom_point(size=3)


如果对R语言默认的颜色或者形状不满意,可以通过scale_color_brewer()或者scale_color_manual()函数自定义点的颜色以及scale_shape_manual()函数自定义点的形状。 下面我们将分组变量cyl同时赋值给颜色和形状属性。

ggplot(data=mtcars, aes(x=wt, y=mpg, color=cyl, shape= cyl))+
geom_point(size=3)+ scale_color_brewer(palette = "Accent")+
scale_shape_manual(values = c(2, 9, 16))#Accent是一调色板,可选点的形状见上

4 将连续变量映射给颜色、大小和形状等属性
4.1 将连续性变量disp映射给颜色属性

ggplot(data=mtcars, aes(x=wt, y=mpg, color=disp))+geom_point(size=3)

从图中可以发现值越大对应的颜色越浅,以下是通过人为设置色阶使值大小与颜色深浅保持一致

ggplot(data=mtcars, aes(x=wt, y=mpg, color=disp))+
geom_point(size=3)+ scale_color_gradient(low="lightblue", high="darkblue")

4.2 将连续性变量disp映射给大小属性

ggplot(data=mtcars, aes(x=wt, y=mpg, size=disp))+geom_point(color="red")


5 重叠点的处理
当数据量非常大时,会导致数据重叠点非常严重,可通过使用半透明的点避免。alpha参数控制点的透明度。下面利用数据集diamonds来演示。

#check data
head(diamonds)
#未使用透明点处理
ggplot(data=diamonds, aes(x=carat, y=price))+geom_point()
#使用alpha参数调整点透明度
ggplot(data=diamonds, aes(x=carat, y=price))+geom_point(alpha=0.1)

6 为散点图添加拟合曲线

#使用数据集mtcars
ggplot(data=mtcars, aes(x=wt, y=mpg))+geom_point()+stat_smooth(method="lm")
#也可以去除掉拟合曲线的置信区间
ggplot(data=mtcars, aes(x=wt, y=mpg))+geom_point()+stat_smooth(method="lm", se=FALSE)
#也可以针对不同类型的cyl来进行拟合
ggplot(data=mtcars, aes(x=wt, y=mpg, color=cyl))+
geom_point()+stat_smooth(method="lm")
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简介 文章较长,点击直达我的博客,浏览效果更好。本文内容基本是来源于STHDA,这是一份十分详细的ggplot2使...
    taoyan阅读 51,578评论 7 159
  • 以三个数据集解释ggplot2的使用。第一个是lattice包中的singer数据集,它包括纽约合唱团歌手的高度和...
    王诗翔阅读 18,232评论 8 54
  • 这是全栈数据工程师养成攻略系列教程的第十四期:14 ggplot2 基本语法和基础图形。 上一节我们掌握了R的使用...
    宏伦工作室阅读 5,104评论 0 1
  • 大学群成员的数目永远比实际人数多,自然包括了那些姓名一看就是侮辱别人智商的小号们,虽然平时潜水,可等老师某一天脑子...
    王家人宁阅读 2,924评论 0 0
  • 爱情是什么?是一瞬的触动?是长期心的的沁濡?还是一生的坚守?当我们在浩渺迷蒙的精神海洋需求懵懂的结果时。却没...
    上官海伦阅读 2,915评论 3 20