R语言数据可视化包ggplot2画图之散点图的基本画法

 更新时间:2022年11月03日 16:13:23   作者:星途*  
散点图主要用于描述两个连续变量之间的关系,通过散点图发现变量之间的相关性强度、是否存在线性关系等,下面这篇文章主要给大家介绍了关于R语言数据可视化包ggplot2画图之散点图的基本画法,需要的朋友可以参考下

前言

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:主题

0e04965748604aed9b531d3947b67f1a.png

 其中mtcars数据概况如下:

d44fcbcf1f2047abb3c2b68a113f630b.png

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

#载入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()

ad1dc5dd1303456c9292282287db7601.png

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

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)

数据概况如下: 

234ad30a6f0843de93856f526fa47122.png

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

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

4b9becad9f8c4e6587b0447c54d7e231.png

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

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

5ff9a78c0f1c4bd197cbc62d7eb181f2.png

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

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

afcdd83b0577437a9a5f004cd2e5a13d.png

 若不加

theme(legend.position = "none")

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

2b0089ed0b7642dd90fcea004bbcae0b.png

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

 自定义颜色:

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")) 

7774736781fd422ea5f3976c69a51549.png

 添加拟合曲线:

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()#添加拟合曲线,默认的形式是局部回归,所以拟合出的线条是曲线。

f0a2586bc35e43429726f77082811ae1.png

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

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

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

beed02a990b74cbcaae536d9a33e25b5.png

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

更换主题 :

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

ed2161b370e54a9d82d379110fe74207.png

总结

到此这篇关于R语言数据可视化包ggplot2画图之散点图的基本画法的文章就介绍到这了,更多相关R语言ggplot2散点图画法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • R语言基于Keras的MLP神经网络及环境搭建

    R语言基于Keras的MLP神经网络及环境搭建

    这篇文章主要介绍了R语言基于Keras的MLP神经网络,我并没有使用python去对比结果,但NSS的文章中有做对比,数据显示R与Python相比在各方面的差别都不大,具体内容介绍跟随小编一起看看吧
    2022-01-01
  • R语言数据类型与相应运算的实现

    R语言数据类型与相应运算的实现

    本文主要介绍了R语言数据类型与相应运算的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • R语言读取txt文件中的内容实现

    R语言读取txt文件中的内容实现

    R语言提供了多种读取文本数据的函数,本文主要介绍了R语言读取txt文件中的内容实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • R语言3.6.3安装超详细教程附安装包

    R语言3.6.3安装超详细教程附安装包

    这篇文章主要介绍了R语言3.6.3安装教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • R语言柱状图排序和x轴上的标签倾斜操作

    R语言柱状图排序和x轴上的标签倾斜操作

    这篇文章主要介绍了R语言柱状图排序和x轴上的标签倾斜操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • R语言中R-squared与Adjust R-squared参数的解释

    R语言中R-squared与Adjust R-squared参数的解释

    这篇文章主要给大家介绍了关于R语言中R-squared与Adjust R-squared两个参数的相关资料,文中介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • R语言时间序列知识点总结

    R语言时间序列知识点总结

    在本篇文章里小编给大家整理了一篇关于R语言时间序列知识点总结内容,有兴趣的朋友们可以学习下。
    2021-03-03
  • R语言中quantile()函数的用法说明

    R语言中quantile()函数的用法说明

    这篇文章主要介绍了R语言中quantile()函数的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • 使用R语言绘制散点图结合边际分布图教程

    使用R语言绘制散点图结合边际分布图教程

    这篇文章主要介绍了使用R语言利用ggplot绘制散点图,并且在图像的两边绘制边际分布图(包括边际直方图与边际密度函数)我们这里介绍两种方法进行绘制
    2021-11-11
  • R语言多元线性回归实例详解

    R语言多元线性回归实例详解

    对比一元线性回归,多元线性回归是用来确定2个或2个以上变量间关系的统计分析方法,下面这篇文章主要给大家介绍了关于R语言多元线性回归的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07

最新评论