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")
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,141评论 5 461
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,101评论 2 372
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,318评论 0 321
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,357评论 1 266
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,205评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,194评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,595评论 3 384
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,285评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,578评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,642评论 2 311
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,402评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,266评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,641评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,933评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,220评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,591评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,780评论 2 335

推荐阅读更多精彩内容

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