第四篇:R语言数据可视化之折线图、堆积图、堆积面积图
折线图简介
折线图通常用来对两个连续变量的依存关系进行可视化,其中横轴很多时候是时间轴。
但横轴也不一定是连续型变量,可以是有序的离散型变量。
绘制基本折线图
本例选用如下测试数据集:

绘制方法是首先调用ggplot函数选定数据集,并在aes参数中指明横轴纵轴。然后调用条形图函数geom_line()便可绘制出基本折线图。R语言示例代码如下:
# 基函数
ggplot(BOD, aes(x = Time, y = demand)) +
# 折线图函数
geom_line()
运行结果:

向折线图添加数据标记
本例选用如下测试数据集:

如果要把数据集中的各样本点在折线图中标记出来只需在原来基础上增加一个散点图图层(geom_line())。R语言实现代码如下:
# 基函数
ggplot(BOD, aes(x = Time, y = demand)) +
# 折线图函数
geom_line() +
# 散点图函数
geom_point()
运行结果:

如果对标记的样式不满意可以通过修改geom_point()的参数进行调整。如可以将标记自定义为粉红方框,R语言实现代码如下:
# 基函数
ggplot(BOD, aes(x = Time, y = demand)) +
# 折线图函数
geom_line() +
# 散点图函数:size设置大小,shape设置形状,colour设置边框颜色,fill设置填充颜色
geom_point(size = 4, shape = 22, colour = "darkred", fill = "pink")
运行结果:

也可以将标记自定义为白色圆框,R语言实现代码如下:
# 基函数
ggplot(BOD, aes(x = Time, y = demand)) +
# 折线图函数
geom_line() +
# 散点图函数:size设置大小,shape设置形状,fill设置填充颜色
geom_point(size = 4, shape = 21,fill = "white")
运行效果:

更多自定义方法请参考函数手册中geom_point()的说明。
绘制多重折线图
本例选用如下测试数据集:

绘制方法是在基础折线图之上再在基函数的美学参数集里设置一个美学变量。可指定colour或者linetype两种参数,分别将不同分组以不同颜色/线型折线表述。R语言示例代码如下:
# 基函数:colour设置分组
ggplot(tg, aes(x = dose, y = length, colour = supp)) +
# 折线图函数
geom_line()
运行结果:

如果多重折线图中做了数据标记处理,那么不同折线的标记有可能重复。可在绘制函数里设置position_dodge参数偏置处理。R语言实现代码如下:
# 基函数:colour设置分组
ggplot(tg, aes(x = dose, y = length, shape = supp)) +
# 折线图函数:position设置偏置项
geom_line(position = position_dodge(.2)) +
# 散点图函数:position设置偏置项
geom_point(position = position_dodge(.2), size = 4)
运行结果:

修改线条样式
本例选用如下测试数据集:

绘制方法很简单,在geom_line()函数里设置linetype参数即可。R语言示例代码如下:
# 基函数
ggplot(BOD, aes(x = Time, y = demand)) +
# 折线图函数:linetype设置线形
geom_line(linetype = "dashed", size = 1, colour = "orange")
运行效果:

折线图置信域
本例选用如下测试数据集:

绘制方法是调用ggplot2的geom_ribbon函数,这个函数能画出一个"带"。我们可指定带的上下边界为置信区间,从而将折线图的置信域可视化出来。测试数据集中Unc10y表示 Anomaly10y 95%置信水平下的置信区间。
R语言示例代码如下:
# 基函数
ggplot(clim, aes(x = Year, Anomaly10y)) +
# 带状图函数:ymin设置下界,ymax设置上界;
geom_ribbon(aes(ymin = Anomaly10y-Unc10y, ymax=Anomaly10y+Unc10y), alpha = 0.2) +
# 折线图函数
geom_line()
运行效果:

绘制基本面积图
本例选用如下测试数据集:

绘制方法是在基函数中设置好数据集和横纵轴,然后加入geom_area()函数绘制面积图。R语言示例代码如下:
# 基函数
ggplot(sunspotyear, aes(x = Year, y = sunspots)) +
# 面积图函数:fill设置填充颜色,alpha设置透明度;
geom_area(fill = "blue", alpha = .2)
运行效果:

绘制堆积面积图
本例选用如下测试数据集:

绘制方法是在基本面积图之上往基函数的美学特征集里设置fill参数。R语言示例代码如下:
# 基函数:fill设置分组依据
ggplot(uspopage, aes(x = Year, y = Thousands, fill = AgeGroup)) +
# 面积图函数
geom_area()
运行效果:

显然,各分组数据有大小关系。因此,可将调色板设置为渐变色。R语言实现代码如下所示:
# 基函数
ggplot(uspopage, aes(x = Year, y = Thousands, fill = AgeGroup)) +
# 面积图函数
geom_area() +
# 调色标尺:breaks反转图例顺序
scale_fill_brewer(palette = "Blues", breaks = rev(levels(uspopage$AgeGroup)))
运行结果:

如果需要绘制百分比堆积图,只需要在上面工作的基础上修改下原数据。
R语言实现代码如下:
# 将数据转换为百分比格式
uspopage_prop = ddply(uspopage, "Year", transform, Percent = Thousands / sum(Thousands) * 100)
# 基函数
ggplot(uspopage_prop, aes(x = Year, y = Percent, fill = AgeGroup)) +
# 面积图函数
geom_area() +
# 调色标尺
scale_fill_brewer(palette = "Blues", breaks = rev(levels(uspopage_prop$AgeGroup)))
运行结果:

PS:对于某些用户来说,可能希望颜色深的图例在下面。这个需求只需在基函数美学特征集里修改下图例的排序顺序即可。
PPS:堆积面积图的原数据通常是宽数据格式,需要实现将其转换为长数据格式。转换方法可参考本系列博文的第二篇。
第四篇:R语言数据可视化之折线图、堆积图、堆积面积图的更多相关文章
- 最棒的7种R语言数据可视化
最棒的7种R语言数据可视化 随着数据量不断增加,抛开可视化技术讲故事是不可能的.数据可视化是一门将数字转化为有用知识的艺术. R语言编程提供一套建立可视化和展现数据的内置函数和库,让你学习这门艺术.在 ...
- 第六篇:R语言数据可视化之数据分布图(直方图、密度曲线、箱线图、等高线、2D密度图)
数据分布图简介 中医上讲看病四诊法为:望闻问切.而数据分析师分析数据的过程也有点相似,我们需要望:看看数据长什么样:闻:仔细分析数据是否合理:问:针对前两步工作搜集到的问题与业务方交流:切:结合业务方 ...
- 第五篇:R语言数据可视化之散点图
散点图简介 散点图通常是用来表述两个连续变量之间的关系,图中的每个点表示目标数据集中的每个样本. 同时散点图中常常还会拟合一些直线,以用来表示某些模型. 绘制基本散点图 本例选用如下测试数据集: 绘制 ...
- 第三篇:R语言数据可视化之条形图
条形图简介 数据可视化中,最常用的图非条形图莫属,它主要用来展示不同分类(横轴)下某个数值型变量(纵轴)的取值.其中有两点要重点注意: 1. 条形图横轴上的数据是离散而非连续的.比如想展示两商品的价格 ...
- 第一篇:R语言数据可视化概述(基于ggplot2)
前言 ggplot2是R语言最为强大的作图软件包,强于其自成一派的数据可视化理念.当熟悉了ggplot2的基本套路后,数据可视化工作将变得非常轻松而有条理. 本文主要对ggplot2的可视化理念及开发 ...
- 第二篇:R语言数据可视化之数据塑形技术
前言 绘制统计图形时,半数以上的时间会花在调用绘图命令之前的数据塑型操作上.因为在把数据送进绘图函数前,还得将数据框转换为适当格式才行. 本文将给出使用R语言进行数据塑型的一些基本的技巧,更多技术细节 ...
- 吴裕雄--天生自然 R语言数据可视化绘图(3)
par(ask=TRUE) opar <- par(no.readonly=TRUE) # record current settings # Listing 11.1 - A scatter ...
- 吴裕雄--天生自然 R语言数据可视化绘图(4)
par(ask=TRUE) # Basic scatterplot library(ggplot2) ggplot(data=mtcars, aes(x=wt, y=mpg)) + geom_poin ...
- 吴裕雄--天生自然 R语言数据可视化绘图(2)
par(ask=TRUE) opar <- par(no.readonly=TRUE) # save original parameter settings library(vcd) count ...
随机推荐
- Asp.net 实现图片缩放 无水印(方法二)
public static System.Drawing.Image GetImage(string path) { try { if (path.StartsWith("http" ...
- C /CLI思辨录[阅读记录]
C /CLI思辨录之拷贝构造函数(避免多个实例在相同的堆对象的错误处理) http://west263.com/info/html/chengxusheji/C-C--/20080224/9247.h ...
- win7访问windows server 2003服务器出现未知的用户名或者错误的密码(转载)
直接放答案,感谢网友提供答案,否则自已还一直在纳闷,为什么? win7系统的安全机制限制了登陆.只要系统时间和win2003服务器的系统时间相差很多,系统就会阻止其登陆,并显示错误信息:"未 ...
- [转] 翻译-高质量JavaScript代码书写基本要点 ---张鑫旭
by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=1173 原文作者:St ...
- PHP表单
二.PHP表单 1.PHP表单处理 welcome.html <html> <body> <form action="welcome.php" met ...
- 项目知识点.Part2
1. 取消collectionView头视图重叠情况:以下两种情况效果一样 但是有一点点bug 每次remove之后 需要把视图刷到上面才会显示(后续会改进方法) for (UIView *view ...
- 【技术贴】解决前台js传参中文乱码
方法1: 前台两次编码,后台一次解码.因为getParamet已经自动解了一次了. JavaScript: window.self.location="list.jsp?searchtext ...
- jQuery--Promise object
http://blog.mediumequalsmessage.com/promise-deferred-objects-in-javascript-pt2-practical-use http:// ...
- linux 发布 qt(更新ld命令的路径依赖)
PATH 错误解决error while loading shared libraries: libXXX.so.X: cannot open shared object file: No such ...
- Static Final用法
一.final数据 在 java编程语言中,有时候需要告知编译器一段数据是不变的编译期常量.对于这种情况,编译器可以将此常量值带入需要用到它的计算式子当中,这种在编译时 执行计算式的方法减轻了运行时的 ...