basic components of ggplot2 plots 由七部分构成
| 参数 | 作用 |
|---|---|
| DATA FRAME | 数据源,要用来画图的数据框 |
| AESTHETIC MAPPINGS | 美学特征,例如颜色、形状等 |
| GEOMS | 图的类型(点、线、形状等等) |
| FACETS | 刻面(分成几组分别画在不同的图上) |
| STATS | 进行统计上的处理? |
| SCALES | 刻度,即两个轴上的刻度范围等 |
| COORDINATE SYSTEM |
> g <- ggplot( mpg, aes(displ,hwy))
Note: 第一条命令并不会产生任何图像,只是设定了要用的数据(data:mpg)以及映射的要形成图像所要用的变量(x= y= )
> g+geom_point()
> #生成散点图 (point)
1. ggplot绘图思想
ggplot本身不产生图像,类似于图层多层叠加,要用加号+来连接不同的函数,多一个函数就是多一个图层
> g + geom_point() + geom_smooth()
> g + geom_point() + geom_smooth(method = "lm")
> # method参数可以指定拟合的类型(线性、非线性等)。formula参数可以指定公式


geom_smooth() 函数的参数
拟合曲线
标度转换
把我们看到的数据转换成电脑可以识别并通过像素、颜色、形状等图形属性的为标度转换
)
转化前:
转化后
大小和形状为默认值
2. 刻面
> g + geom_point() + geom_smooth(method = "lm")+
+ facet_grid(.~drv)
> # 刻面, .代表1

> g +geom_point()+facet_grid(drv~cyl,margins = TRUE)
drv有3个水平,cyl有4个水平,但是输出的图形有4行5列,因为添加了边际(margins)的图像

3. 轴
轴名称
labs()函数
labs() 设置轴名称
> g + geom_point(aes(color=drv))+labs(title = "Swirl Rules!",x="Displacement",y="Hwy Mileage")

ggtitle函数设置图标题
也可以用labs函数的参数设置标题
> g + geom_point() + geom_smooth(method = "lm")+
+ facet_grid(.~drv)+ggtitle("Swirl Rules!")
+ ## xlab() ylab() ggtitle() labs()函数提供轴的信息

设置坐标轴刻度信息
4. theme()函数可以用来设定主题
类似于基础绘图系统的par ( )
theme_gray() (默认) 和 theme_bw()是ggplot中默认的两种
theme_bw ( )
> g+geom_point(aes(color=drv))+theme_bw(base_family="Times")

theme函数其实最妙的地方是将对于数据相关的美学调整和与数据无关的美学调整分离了。
比如一些和数据无关的美学特征可以事先设定好存为theme
theme函数采用了四个简单地函数来调整所有的主题特征:element_text调整字体,element_line调整主题内的所有线,element_rect调整所有的块,element_blank清空。
5. 设定美学特征
> g + geom_point (color= "pink",size =4 ,alpha =1/2)

aes函数用于设定特征,可以放在ggplot函数里(针对所有变量)。也可以放在单个的geom_函数中(针对单个函数,每个函数进行不同的分组等)
例如:
针对一个函数(点图)
>g+geom_point(aes(color=drv),size=2,alpha=1/2)
>+geom_smooth(size=4,linetype=3,method = "lm",se=FALSE)
##se参数控制是否设置置信区间

两个函数(点图和拟合直线)
> g+geom_point(aes(color=drv),size=2,alpha=1/2)+
geom_smooth(aes(color=drv),size=4,linetype=3,method = "lm",se=FALSE)
## 也可以在ggplot中放置aes

针对异常值,plot和ggplot处理方式不同
> g+geom_line()+ylim(-3,3)
> #添加ylim设定刻度范围
有一个异常值(50,100)
直接加ylim函数绘图,会直接忽略异常值(50,100)
> g+geom_line()+coord_cartesian(ylim=c(-3,3))
> #添加了一个coord_cartesian函数来处理异常值

最后的结果显示了异常值
版权声明:本文为weixin_42320042原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。