您的位置:首页 > 其它

R语言之数据可视化 - R的绘图系统3 - ggplot2 绘图系统

2017-02-24 22:54 295 查看
使用ggplot2绘图的本质,是把数据映射到几何客体的美学属性上。

1. 层(layer)

  


2. 绘图函数

  - qplot()

    · 类似于Base系统的plot(), 参数包含 aesthetics / geom / facet ...

    · 隐藏了绘图实现的细节

  - ggplot()

    · 是核心, 可以实现qplot()无法实现的功能

    · 调用ggplot()本身并不能实现绘图, 要在其基础上添加层(如geom_point())才可以

3. 用 qplot() 画图

library(ggplot2)
# 加载ggplot2包

qplot(Wind, Temp, data=airquality, color=Month)
# color=Month使得颜色按照月份渐变

airquality$Month <- factor(airquality$Month)
# Month变量转换成factor,即分类变量
qplot(Wind, Temp, data=airquality, color=Month)
# 此时图标每个月份对应一个颜色

qplot(Wind, Temp, data=airquality, color=I("red"))
# 使用I所有点的颜色会变成指定颜色

qplot(Wind, Temp, data=airquality, shape=Month)
# color=Month使得不同月份的数据的点的形状不同

qplot(Wind, Temp, data=airquality, size=Month)
# color=Month使得不同月份的数据的点的大小不同

qplot(Wind, Temp, data=airquality, size=I(1))
# 使用I所有点的大小设置为指定的大小

qplot(Wind, Temp, data=airquality, size=I(3),
xlab="Wind(mph)", ylab="Temperature", main="Wind vs. Temp")
# 加入轴标签和图名

qplot(Wind, Temp, data=airquality, geom=c("point","smooth"))
# smooth会给一条拟合回归线,算是统计信息,阴影为置信区间

qplot(Wind, Temp, data=airquality, color=Month, geom=c("point","smooth"))
# 每个月份不同颜色,并且每个月份数据各自拟合了对应颜色的回归线

qplot(Wind, Temp, data=airquality, facets=.~Month)
# 把整个面板分成了一行五列,每一列对应一个月份

qplot(Wind, Temp, data=airquality, facets=Month~.)
# 把 .~ 放在Month后面,则变成五行一列,每一行对应一个月份

qplot(Wind, data=airquality, facets=Month~.)
# 只传一个参数则默认柱状图,传两个参数则为散点图

qplot(y=Wind, data=airquality)
# 若已写明y=...,则仍然为散点图

qplot(Wind, data=airquality, fill=Month)
# 得到累加的柱状图,并且不同月份使用了不同颜色表示

qplot(Wind, data=airquality, geom="density", color=Month)
# geom=“density”绘制频率分布的轮廓线,color=Month生成每个月份对应轮廓线

qplot(Wind, data=airquality, geom="dotplot")
# geom="dotplot"绘制点图


  

4. 用 ggplot() 画图

library(ggplot2)
# 引入ggplot2包
ggplot(airquality, aes(Wind, Temp)) + geom_point(color="steelblue", alpha=0.4, size=5)
# ggplot内为数据层和美学层,再加上几何客体层即可绘制图形,图形设为蓝色,0.4的透明度,点的尺寸为5
ggplot(airquality, aes(Wind, Temp)) + geom_point(aes(color=factor(Month)), alpha=0.4, size=5)
# 每个月份对应一个颜色,注意颜色属性要放在aes美学层中

ggplot(airquality, aes(Wind, Temp)) + geom_point() + geom_smooth()
# 在几何客体层添加统计信息,即,添加拟合回归线和置信区间

ggplot(airquality, aes(Wind, Temp)) + geom_point() + stat_smooth()
# 在统计层添加统计信息

ggplot(airquality, aes(Wind, Temp)) + stat_smooth()
# 只留下统计层,则只得到拟合回归线和置信区间,而没有显示点

ggplot(airquality, aes(Wind, Temp)) + stat_smooth(method="lm", se=FALSE)
# 使用线性回归方法设置回归线,置信区间不显示

ggplot(airquality, aes(Wind, Temp)) + stat_smooth(method="lm", se=FALSE, aes(color=factor(Month)))
# 每个月份对应一条回归线,使用不同颜色显示

ggplot(airquality, aes(Wind, Temp, color=factor(Month))) + stat_smooth(method="lm", se=FALSE)
# 也可把color=factor(Month)直接放在aes层中

ggplot(airquality, aes(Wind, Temp, color=factor(Month),group=1)) + geom_point() + stat_smooth(method="lm", se=FALSE)
# group=1把所有数据当作一组数据拟合回归线,点仍然是五种不同颜色

ggplot(airquality, aes(Wind, Temp, color=factor(Month))) + geom_point() + stat_smooth(method="lm", se=FALSE, aes(group=1)) +
stat_smooth(method="lm", se=FALSE)
# 把group=1放入统计层,并再添加一个统计层,这样整体的数据和按月份的数据均会展示,即产生6条拟合回归线

library(RColorBrewer)
# 加载RColorBrewer包,用于设置颜色
myColors <- c(brewer.pal(5, "Dark2"), "black")
# 从Dark2调色板中选取5个颜色,第6个颜色设置为黑色
display.brewer.pal(5, "Dark2")
# 显示Dark2调色板中的5个颜色
ggplot(airquality, aes(Wind, Temp, color=factor(Month))) +
geom_point() +
stat_smooth(method="lm", se=FALSE, aes(group=1, color="All")) +
stat_smooth(method="lm", se=FALSE) +
scale_color_manual("Month", values=myColors)
# 把myColors中的颜色设置到图上

ggplot(airquality, aes(Wind, Temp, color=factor(Month))) +
geom_point() +
stat_smooth(method="lm", se=FALSE) +
scale_color_manual("Month", values=myColors) +
facet_grid(.~Month)
# 面层,facet_grid(.~Month)使面板分为一行五列, facet_grid(Month~.)使面板分为一列五行

ggplot(airquality, aes(Wind, Temp, color=factor(Month))) +
geom_point() +
stat_smooth(method="lm", se=FALSE) +
scale_color_manual("Month", values=myColors) +
facet_grid(.~Month) +
theme_classic()
# 主题层, theme_classic()使背景色全部为白色, 使用 ?theme 查看帮助文档 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: