折线图简介

折线图通常用来对两个连续变量的依存关系进行可视化,其中横轴很多时候是时间轴。

但横轴也不一定是连续型变量,可以是有序的离散型变量。

绘制基本折线图

本例选用如下测试数据集:

绘制方法是首先调用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语言数据可视化之折线图、堆积图、堆积面积图的更多相关文章

  1. 最棒的7种R语言数据可视化

    最棒的7种R语言数据可视化 随着数据量不断增加,抛开可视化技术讲故事是不可能的.数据可视化是一门将数字转化为有用知识的艺术. R语言编程提供一套建立可视化和展现数据的内置函数和库,让你学习这门艺术.在 ...

  2. 第六篇:R语言数据可视化之数据分布图(直方图、密度曲线、箱线图、等高线、2D密度图)

    数据分布图简介 中医上讲看病四诊法为:望闻问切.而数据分析师分析数据的过程也有点相似,我们需要望:看看数据长什么样:闻:仔细分析数据是否合理:问:针对前两步工作搜集到的问题与业务方交流:切:结合业务方 ...

  3. 第五篇:R语言数据可视化之散点图

    散点图简介 散点图通常是用来表述两个连续变量之间的关系,图中的每个点表示目标数据集中的每个样本. 同时散点图中常常还会拟合一些直线,以用来表示某些模型. 绘制基本散点图 本例选用如下测试数据集: 绘制 ...

  4. 第三篇:R语言数据可视化之条形图

    条形图简介 数据可视化中,最常用的图非条形图莫属,它主要用来展示不同分类(横轴)下某个数值型变量(纵轴)的取值.其中有两点要重点注意: 1. 条形图横轴上的数据是离散而非连续的.比如想展示两商品的价格 ...

  5. 第一篇:R语言数据可视化概述(基于ggplot2)

    前言 ggplot2是R语言最为强大的作图软件包,强于其自成一派的数据可视化理念.当熟悉了ggplot2的基本套路后,数据可视化工作将变得非常轻松而有条理. 本文主要对ggplot2的可视化理念及开发 ...

  6. 第二篇:R语言数据可视化之数据塑形技术

    前言 绘制统计图形时,半数以上的时间会花在调用绘图命令之前的数据塑型操作上.因为在把数据送进绘图函数前,还得将数据框转换为适当格式才行. 本文将给出使用R语言进行数据塑型的一些基本的技巧,更多技术细节 ...

  7. 吴裕雄--天生自然 R语言数据可视化绘图(3)

    par(ask=TRUE) opar <- par(no.readonly=TRUE) # record current settings # Listing 11.1 - A scatter ...

  8. 吴裕雄--天生自然 R语言数据可视化绘图(4)

    par(ask=TRUE) # Basic scatterplot library(ggplot2) ggplot(data=mtcars, aes(x=wt, y=mpg)) + geom_poin ...

  9. 吴裕雄--天生自然 R语言数据可视化绘图(2)

    par(ask=TRUE) opar <- par(no.readonly=TRUE) # save original parameter settings library(vcd) count ...

随机推荐

  1. 【Linux】基础配置-修改命令提示符的风格

    1,效果图: [groot]$ 2,设置步骤: 编辑~/.bashrc文件,在最后增加设置行: #显示当面目录的最后一层目录#PS1='\[\e[32m\][\u@\h \W]$\[\e[m\]'#只 ...

  2. 深入浅出 Java Concurrency (1) : J.U.C的整体认识

    转 http://www.blogjava.net/xylz/archive/2010/06/30/324915.html 去年年底有一个Guice的研究计划,可惜由于工作“繁忙”加上实际工作中没有用 ...

  3. Lua I/0输入输出

    I/O库为文件操作提供了两种不同的模型,简单模型和完整模型.简单模型假设一个当前输入文件和一个当前输出文件,他的I/O操作均作用于这些文件.完整模型则使用显式的文件句柄,并将所有的操作定义为文件句柄上 ...

  4. Powerful Regex

    Online test Regex http://rubular.com An example src="http:\/\/localhost:3000\/preveiw-tool\/iph ...

  5. Surprising Strings(map类)

    http://poj.org/problem?id=3096 题意容易理解,开始直接暴力,还是用map写下吧,熟练一下: #include<stdio.h> #include<str ...

  6. 【转】java提高篇(二三)-----HashMap

    原文网址: http://www.cnblogs.com/chenssy/p/3521565.html HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以 ...

  7. 数据结构(树链剖分,线段树):SDOI 2016 游戏

    4515: [Sdoi2016]游戏 Time Limit: 40 Sec  Memory Limit: 256 MBSubmit: 351  Solved: 157[Submit][Status][ ...

  8. 【模拟】【数学】CSU 1803 2016 (2016湖南省第十二届大学生计算机程序设计竞赛)

    题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1803 题目大意: 给定n,m(n,m<=109)1<=i<=n,1& ...

  9. select的使用(一)

    单表操作 select Name,Major,InDate from T_Employee as 计算结果 select Name as 姓名,Major,InDate from T_Employee ...

  10. 工作中常用的QTP操作Excel函数

    前言 本文只是对工作中常用的EOM相关函数的整理,并不是要写个大而全的操作手册,如果想对EOM有更多的了解可以参考QTP的帮助文档或查看QTP安装目录\CodeSamplesPlus\UsingExc ...