折线图简介

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

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

绘制基本折线图

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

绘制方法是首先调用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. Visual Studio 2013 在使用 MVC5 无智能提示

    关于 Visual Studio 2013 在使用 MVC5 无智能提示的问题,类库无法正常识别,连最基本的关键字提示都没有了,类变色也没有了,所有的关键字代码,类名,方法成员名都要全部手动敲 原因: ...

  2. iOS适配:Masonry介绍与使用实践:快速上手Autolayout

    随着iPhone的手机版本越来越多, 那么对于我们广大的开发者来说就是很悲催,之前一直使用代码里面layout的约束来适配, 现在推荐一个第三方Masonry,上手块,操作简单,只能一个字形容他 “爽 ...

  3. 如何用DOS 链接mysql

    1.Ctrl+R 打开DOS窗口 2.键入 cd\ 回车进入C盘根目录 3.进入mysql bin目录下 操作mysql命令 4.输入连接数据库命令 mysql -hlocalhost -uroot ...

  4. JS和jQuery获取节点的兄弟,父级,子级元素

    原文转自http://blog.csdn.net/duanshuyong/article/details/7562423 先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的 ...

  5. 基于 libmemcahce 的memcache 操作

    <?php echo '<pre>'; //测试的键值的数量 $count = 30; $mem = create_memcache(); //var_dump($mem->i ...

  6. thinkphp 中js 实现刷新

    <input name="Button5" value="返回" id="Button5" style="width:56p ...

  7. Python学习 - 使用BeautifulSoup来解析网页一:基础入门

    写技术博客主要就是总结和交流的,如果文章用错,请指正啊! 以前一直在使用SGMLParser,这个太费时间和精力了,现在为了毕业设计,改用BeautifulSoup来实现HTML页面的解析工作的. 一 ...

  8. NLP相关资源

    一 NLP相关资源站点 Rouchester大学NLP/CL会议列表 一个非常好的会议时间信息网站,将自然语言处理和计算语言学领域的会议,按照时间月份顺序列出. NLPerJP 一个日本友好人士维护的 ...

  9. string.Format 日期格式化

    String.Format日期的格式化例子: DateTime dt = DateTime.Now;//2010年10月4日 17点05分 string str = ""; //s ...

  10. 转:gpio_direction_output 与 gpio_set_value

    gpio_set_value(port_num,0/1) 一般只是在这个GPIO口的寄存器上写上某个值,至于这个端口是否设置为输出,它就管不了! 而gpio_direction_output (por ...