ggplot2的功能很强大,并因为其出色的画图能力而闻名,下面来介绍一下它的基本画图功能,本期介绍散点图的基本画法。

在ggplot2里,所有图片由6个基本要素组成:

1. 数据(Data)

2. 层次(Layers),包含两种元素:几何元素(Geometrics)与统计转换(Statistical transformations)。

几何元素指的是你想画的图形,如点,线,或多边形等。

统计转换指的是你想画的统计描述,如均数,标准差或可信区间等。

3. 刻度(Scales), 通常指几何元素(如点或者线)的大小,颜色和形状等。

4. 坐标系统(A coordinate system), 通常指的是x轴与y轴。

5. 多面化(Faceting),简单的说,就是可以将一个图片分成多个小的亚图片。

6. 主题 (Theme),此要素可以控制非数据与非统计部分的内容,如背景颜色,字体大小等。

下面以一个简单的例子引入:

library(ggplot2)#导入ggplot包
#使用mtcars数据做一个散点图
ggplot(data = mtcars,            # 要素1:数据aes(x = wt, y = mpg, colour = factor(cyl))) +  # 要素3:刻度geom_point() +            # 要素2:几何元素(点)coord_cartesian() +       # 要素4:坐标轴facet_wrap(~ cyl) +       # 要素5:分面化theme_bw()                # 要素6:主题

其中mtcars数据概况如下:

首先介绍第一类常用的图像类型:散点图

#载入ggplot2
library(ggplot2)
#建立数据集,横坐标为1:100,纵坐标为服从标准正态分布的随机数
x <- seq(1,100,length=100)
y <- rnorm(100,mean=0,sd=1)
data <- data.frame(x=x,y=y)
#作散点图
ggplot(data, aes(x=x, y=y)) + geom_point()

给原始数据加上分类标签:

x <- seq(1,100,length=100)
y <- rnorm(100,mean=0,sd=1)
z <- c(rep("A",30),rep("B",30),rep("C",40))
z <- sample(z,100)
data <- data.frame(x=x,y=y,z=z)

数据概况如下:

按z列分类以不同的颜色在图中画出散点图:

ggplot(data, aes(x=x, y=y,color=z)) + geom_point()

按z列分类以不同的形状在图中画出散点图:

ggplot(data, aes(x=x, y=y,shape=z)) + geom_point()

多面化(将ABC三类分开展示):

ggplot(data, aes(x=x, y=y,color=z)) + geom_point()+facet_wrap(~z)+theme(legend.position = "none")

若不加

theme(legend.position = "none")

这一段代码,显示的图表如下:

可以看出不加这一段代码侧边栏显示图例,但显然这个图例是多余的,因此我们一般去掉

自定义颜色:

ggplot(data, aes(x=x, y=y,color=z)) + geom_point()+facet_wrap(~z)+theme(legend.position = "none")+scale_colour_manual(values = c("purple", "red", "black")) 

添加拟合曲线:

x <- seq(1,50,length=50)
y <- rnorm(50,mean=0,sd=5)
z <- c(rep("A",20),rep("B",15),rep("C",15))
z <- sample(z,50)
data <- data.frame(x=x,y=2*x-y,z=z)#这里构造的数据集大致服从y=2x
ggplot(data, aes(x=x, y=y)) + geom_point()+geom_smooth()#添加拟合曲线,默认的形式是局部回归,所以拟合出的线条是曲线。

因为geom_smooth()默认的形式是局部回归,所以拟合出的线条是曲线,阴影区域为置信区间。

这里也可以用其他模型拟合,如线型模型:

ggplot(data, aes(x=x, y=y)) + geom_point()+geom_smooth(method = "lm", se = FALSE)

(se = FALSE:去除置信区间)

更换主题 :

ggplot(data, aes(x=x, y=y)) + geom_point()+theme_test()

R语言数据可视化包ggplot2画图之散点图相关推荐

  1. R语言数据可视化包ggplot2之折线图

    ggplot2的功能很强大,并因为其出色的画图能力而闻名,下面来介绍一下它的基本画图功能,本期为折线图的基本画法. 在ggplot2里,所有图片由6个基本要素组成: 1. 数据(Data) 2. 层次 ...

  2. R语言数据可视化 ggplot2基础1 ggplot2 图形的分层语法 Layered Grammar 简介

    R语言数据可视化 ggplot2基础1 ggplot2 图形的分层语法 Layered Grammar 简介 分层语法的组成(data-stat-geom-scale-coord-facet) 用分层 ...

  3. 半折预售:新书-R语言数据可视化之美|ggplot2作者推荐

    我本来想等正式发售的时候,再告诉大家我的新书<R语言数据可视化之美>已经出版,奈何新书还太贵,这几天刚好京东有买100减50的活动,所以想想还是赶紧告诉大家吧,不然平时购买的话,太真有点小 ...

  4. R语言数据可视化 ggplot2基础2 创建单图层的散点图 创建facet

    R语言数据可视化 ggplot2基础2 创建单图层的散点图 创建facet 单图层散点图 单图层散点图的facet 单图层散点图 这一讲我们从最简单的散点图开始介绍ggplot2应用的基础,首先我们下 ...

  5. R语言R原生及可视化包ggplot2绘制并排的箱图实战(Side-by-Side Boxplots)

    R语言R原生及可视化包ggplot2绘制并排的箱图实战(Side-by-Side Boxplots) 目录 R语言R原生及可视化包ggplot2绘制并排的箱图实战(Side-by-Side Boxpl ...

  6. R语言数据可视化 ggplot2基础4 位置与坐标系

    R语言数据可视化 ggplot2基础4 位置与坐标系 我们继续使用ggplot2::diamonds介绍position. position = "identity" ggplot ...

  7. R语言数据可视化 ggplot2基础3 添加几何对象

    R语言数据可视化 ggplot2基础3 添加几何对象 数据的统计变换 添加几何对象 数据的统计变换 添加几何对象 上一讲我们介绍的是如何创建散点图,这一讲我们介绍如何创建其他类型的图,以及怎么创建有多 ...

  8. R语言数据可视化——图形色彩设计(调色盘)

    R语言数据可视化--图形色彩设计 图形颜色的选择对我们最终图形呈现的效果影响很大,我们需要用到的图形配色也跟随着图形出现的场合而变化,这篇文章整理了前辈们制作的在ggplot包绘制图形时,常常使用的配 ...

  9. 推荐:一本“高颜值”的R语言数据可视化图书(包邮送3本)

    文章留言点赞前3名的朋友,每人送1本<R语言数据化可视化之美增强版>,名单揭晓日期为:本周日 (2020年7月12日晚7点).到时,获奖的朋友可以直接添加微信:meta-genomics, ...

最新文章

  1. scapy on openwrt
  2. 计算机视觉开源库OpenCV之threshold()函数详解
  3. 学生成绩等级评定python_马鞍山市初中学生综合素质评价工作政策解读来了!
  4. 3种骚操作,教你查看 Java 字节码!
  5. VC++取MD5算法记录下以后用得到(转)
  6. Vue2.0通过二级路由实现页面切换
  7. php 建立自己的框架,利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备...
  8. 去哪儿-05-recommendDev
  9. java logic逻辑,logicJava的复习
  10. (77)FPGA时钟激励(always)
  11. oracle权限不足的报错,Oracle Scott创建视图权限不足解决办法
  12. Android7.1 Offload模式下的音频数据播放流程
  13. 一键修改电脑硬件信息_不想使用iPhone锁屏键?一键锁屏快捷指令来了
  14. 进销存数据库设计 For MysQL
  15. 跟周鸿祎学互联网思维 ——《周鸿祎自述|我的互联网方法论》读后感
  16. Redis使用场景举例
  17. 网站出现安全证书过期的原因
  18. C#中TransactionScope的使用小结
  19. 一加5应用未安装怎么解决_一加手机x安装不了软件下载是什么原因?怎么解决?...
  20. Hive视图与物化视图

热门文章

  1. 学会自我欣赏,将缺点变为有点
  2. Ogre procedural 几何图元库
  3. docker Starting MySQL database server mysqld fail解决办法
  4. 思考12. 口说无凭,眼见为实。
  5. (史上最完整) 队列 的基本操作和实现 及排队系统实例
  6. 鼎捷APS助力茶花家居实现智能高效生产排程
  7. elasticsearch删除过期数据
  8. ArcMap 生成SLD文件及wms服务发布及使用
  9. 算法应该怎么“玩”?
  10. AI 人工智能 探索 (九)