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:主题
其中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画图之散点图的基本画法的文章就介绍至此,更多相关R语言ggplot2散点图画法内容请搜索编程宝库以前的文章,希望以后支持编程宝库!
1 主成分分析可视化结果1.1 查看莺尾花数据集(前五行,前四列)iris[1:5,-5]## Sepal.Length Sepal.Width Petal.Length Petal.Wid ...