1.基础绘图
library(tidyverse)
绘图模板:ggplot(data=<DATA>)+<GEOM_FUNCTION>(mapping=aes(<MAPPINGS>))
data(mpg)
ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=hwy))
displ~hwy.png
将离散变量class映射为颜色
ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=hwy,color=class))
displ~hwy,color.png
将离散变量class映射为透明度
ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=hwy,alpha=class))
displ~hwy,alpha.png
将离散变量class映射为形状
ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=hwy,shape=class))
displ~hwy,shape.png
ggplot2只能同时使用6种形状。
对于有边界的形状,可以为内部和外部分别设置颜色,stroke用于设置边界的宽度。
2.分面
facet_wrap()
ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=hwy))+facet_wrap(~class,nrow=2)
facet_wrap.png
通过两个变量分面,使用函数facet_grid()
ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=hwy))+facet_grid(drv~cyl)
ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=hwy))+facet_grid(.~cyl)
facet_grid.png
几何对象:aes()
ggplot(data=mpg)+geom_smooth(mapping=aes(x=displ,y=hwy))
ggplot(data=mpg)+geom_point(mapping=aes(x=displ,y=hwy))+geom_smooth(mapping=aes(x=displ,y=hwy))
geom_smooth.png
简化的代码如下:
ggplot(data=mpg,mapping=aes(x=displ,y=hwy))+geom_point()+geom_smooth()
ggplot(data=mpg,mapping=aes(x=displ,y=hwy))+geom_point(mapping=aes(color=class))+geom_smooth()
ggplot(data=mpg,mapping=aes(x=displ,y=hwy))+geom_point(mapping=aes(color=class))+geom_smooth(data=filter(mpg,class=='subcompact'),se=F)
3.统计变换
条形图
ggplot(data=diamonds)+geom_bar(mapping=aes(x=cut))
位置调整
ggplot(data=diamonds)+geom_bar(mapping=aes(x=cut,color=cut))
Rplot.png
条形图用fill的效果更好
ggplot(data=diamonds)+geom_bar(mapping=aes(x=cut,fill=cut))
Rplot01.png
比较各组之间的比例
ggplot(data=diamonds)+geom_bar(mapping=aes(x=cut,fill=clarity),position='fill')
position=fill.png
比较各组之间的具体数值
ggplot(data=diamonds)+geom_bar(mapping=aes(x=cut,fill=clarity),position='dodge')
posion=dodge.png
坐标系的变换
盒型图
ggplot(data=mpg,mapping=aes(x=class,y=hwy))+geom_boxplot()
boxplot.png
使用coord_flip()函数变换x轴和y轴的位置
ggplot(data=mpg,mapping=aes(x=class,y=hwy))+geom_boxplot()+coord_flip()
boxplot_flip.png