折线图简介

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

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

绘制基本折线图

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

绘制方法是首先调用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. 如何让input之间无空隙

    有如下两个input: <form action="http://www.example.com/index/search" method="get"&g ...

  2. workerman需要的php模块posix、pcntl、sysvshm、sysvmsg缺少,怎么办

    如果您的php是源码编译,那么请进到php的源码目录,再进入ext目录下,分别找到相应的php模块目录,进行编译 1. 假设php目录为/usr/local/php, 进到相应的php模块目录,执行 ...

  3. php基础知识【函数】(8)xml和变量函数

     一.XML函数 参数类型 data    --string,需要解析的数据集. parser  --resource,一个指向要取得字节索引的 XML 解析器的引用.  1.创建和释放XMl解析器 ...

  4. .NET 4.0 使用 asyn await

    .NET 4.0 也可以使用asyn await 使用nuget 搜索await即可发现微软官方包,安装导项目就可以使用了.   参考:http://stackoverflow.com/questio ...

  5. hdu不要62

    Problem Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer).杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来, ...

  6. 转:PHP的线程安全ZTS与非线程(NTS)安全版本的区别

    原文来自于:http://blog.sina.com.cn/s/blog_94c21e8f0101s2ic.html Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和 ...

  7. 用Jquery 仿VS 样式的 导航栏插件

    在开发B/S 项目过程中,根据主界面设计要求,需要做一个类似VS 左边工具栏样式的菜单导航栏,在网上搜索无果后,于是决定自已做一个. 由于前台用JQuery开发, 想到网上很多人用JQuery做插件, ...

  8. I2C转UART

    I2C转UART,51单片机普通IO口模拟I2C从机,解决UART不够的问题 /************************************************************ ...

  9. 理解Java机制最受欢迎的8幅图

    原文链接:  Top 8 Diagrams for Understanding Java 翻译人员: 铁锚 翻译时间: 2013年10月29日 世间总是一图胜过千万言! 下面的8幅图来自于 Progr ...

  10. 用SD卡下载uboot、linux内核和文件系统

    1. 移植mtd-utils: a) 下载utd-utils 下载地址为ftp://ftp.infradead.org/pub/mtd-utils/b) 交叉编译mtd-utilsi   修改Make ...