高阶绘图(ggplot函数)

Reads: 2234 Edit

1 ggplot2包介绍

ggplot2是R中最为流行的可视化包,具有强大的绘图功能.

ggplot2()的语法包括数据(data)、映射(mapping)、几何对象(geom)、标度(scale)、统计变换(stats)、坐标系(coord)、位置调整(Position adjustments)、分面(facet)、主题(theme)、输出(output)10个部件。其中前3个部件必须指定,其他部件均有默认值。我们这里仅演示ggplot2最基础的功能。

2 ggplot2绘图

2.1 绘制散点图

> x=c(0.051,0.926,0.209,0.358,1.672,-1.191,1.404,1.112,0.108,-0.429,0.746,1.304,0.292,-1.587,-0.815)
> y=2*x+rnorm(15,0,1)   # 根据x生成序列y
> data1=data.frame(x,y)
> ggplot(data1, aes(x, y)) + geom_point()

r-117

> ggplot(data1, aes(x, y)) + geom_point()+geom_smooth()
`geom_smooth()` using method = 'loess' and formula 'y ~ x'

说明:ggplot2的绘图函数可以叠加,geom_smooth()函数默认采用loess方法来估计散点的拟合线。

r-118

> ggplot(data1, aes(x, y)) + geom_point()+geom_smooth(method = "lm",color="red",formula = y~x,se=FALSE)

说明:se=FALSE表示不显示预测的区间

r-119

> ggplot(data1, aes(x, y)) + geom_point()+geom_smooth(method = "lm",color="red",formula = y~x,se=FALSE)+coord_cartesian(xlim = c(-2, 2), ylim = c(-5, 5))

r-120

> ggplot(data1, aes(x, y)) + geom_point()+geom_smooth(method = "lm",color="red",formula = y~x,se=FALSE)+coord_cartesian(xlim = c(-2, 2), ylim = c(-5, 5))+theme(panel.grid=element_blank(),panel.background = element_blank(),panel.border = element_blank())+theme(axis.line = element_line(colour = "black"))

r-121

2.2 绘制分组散点图

> x=c(0.051,0.926,0.209,0.358,1.672,-1.191,1.404,1.112,0.108,-0.429,0.746,1.304,0.292,-1.587,-0.815)
> y=2*x+rnorm(15,0,1)   # 根据x生成序列y
> z=c("A","B","B","A","B","B","A","A","B","B","B","B","B","A","A")
> data2=data.frame(x,y,z)
> ggplot(data2, aes(x, y,color=z)) + geom_point()

说明:参数color=z表示以变量z进行分组,ggplot2会自动对不同组别的三点图选择有区别的颜色。

r-122

> ggplot(data2, aes(x, y,color=z,group = z)) + geom_point()+geom_smooth(method = "lm",formula = y~x,se=FALSE)

说明:绘制分组拟合直线时,需要设置参数group = z。

r-123

> ggplot(data2, aes(x, y,color=z,group = z)) + geom_point()+geom_smooth(method = "lm",formula = y~x,se=FALSE)+facet_wrap(~ z, scales = "free")

说明:可以通过facet_wrap()函数进行分面板绘图,scales = "free"表示不共用坐标轴!
如果有两个分组变量z和m,则可以设置二维的分面板绘图,语法为:facet_wrap(z~ m, scales = "free")。

r-124

我们这里仅演示了ggplot2的散点图,ggplot2提供了50多种图形绘制函数,如条形图geom_bar()、直方图geom_histogram()等等,用法和散点图geom_point()类似,这里不再演示!


Comments

Make a comment