第四篇: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:堆积面积图的原数据通常是宽数据格式,需要实现将其转换为长数据格式。转换方法可参考本系列博文的第二篇。

时间: 2024-10-19 05:07:43

第四篇:R语言数据可视化之折线图、堆积图、堆积面积图的相关文章

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

条形图简介 数据可视化中,最常用的图非条形图莫属,它主要用来展示不同分类(横轴)下某个数值型变量(纵轴)的取值.其中有两点要重点注意: 1. 条形图横轴上的数据是离散而非连续的.比如想展示两商品的价格随时间变化的走势,则不能用条形图,因为时间变量是连续的: 2. 有时条形图的值表示数值本身,但也有时是表示数据集中的频数,不要引起混淆: 绘制基本条形图 本例选用测试数据集如下: 绘制方法是首先调用ggplot函数选定数据集,并在aes参数中指明横轴纵轴.然后调用条形图函数geom_bar(stat

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

散点图简介 散点图通常是用来表述两个连续变量之间的关系,图中的每个点表示目标数据集中的每个样本. 同时散点图中常常还会拟合一些直线,以用来表示某些模型. 绘制基本散点图 本例选用如下测试数据集: 绘制方法是首先调用ggplot函数选定数据集,并在aes参数中指明横轴纵轴.然后调用散点图函数geom_point()便可绘制出基本散点图.R语言示例代码如下: # 基函数 ggplot(ah, aes(x = ageYear, y = heightIn)) + # 散点图函数 geom_point()

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

前言 绘制统计图形时,半数以上的时间会花在调用绘图命令之前的数据塑型操作上.因为在把数据送进绘图函数前,还得将数据框转换为适当格式才行. 本文将给出使用R语言进行数据塑型的一些基本的技巧,更多技术细节推荐参考<R语言核心手册>. 数据框塑型 1. 创建数据框 - data.frame() # 创建向量p p = c("A", "B", "C") # 创建向量q q = 1:3 # 创建数据框:含p/q两列 dat = data.fra

R语言数据可视化之散点图

散点图简介 散点图通常是用来表述两个连续变量之间的关系,图中的每个点表示目标数据集中的每个样本. 同时散点图中常常还会拟合一些直线,以用来表示某些模型. 回到顶部 绘制基本散点图 本例选用如下测试数据集: 绘制方法是首先调用ggplot函数选定数据集,并在aes参数中指明横轴纵轴.然后调用散点图函数geom_point()便可绘制出基本散点图.R语言示例代码如下: 1 2 3 4 # 基函数 ggplot(ah, aes(x = ageYear, y = heightIn)) +   # 散点图

R语言数据可视化1—ggplot2画柱状图

目的:将已有的业务表(csv格式),导入到Rstudio中.根据"开始时间",按月份统计出业务量.画出下图.(注:我选择的业务表中只有1.2.3月的数据) 开始吧!!! 1.加载csv格式的数据表,并查看字段名: ##加载数据 khsx <-read.csv("khsx.csv",header = TRUE) names(khsx)##查看列名 2.加载将要使用的包 ##加载包 library(ggplot2) ##画图用的包 library(lubridat

《美团 R 语言数据运营实战》

美团 R 语言数据运营实战 2018年08月02日 作者: 喻灿 刘强 文章链接 3689字 8分钟阅读 一.引言 近年来,随着分布式数据处理技术的不断革新,Hive.Spark.Kylin.Impala.Presto 等工具不断推陈出新,对大数据集合的计算和存储成为现实,数据仓库/商业分析部门日益成为各类企业和机构的标配.在这种背景下,是否能探索和挖掘数据价值,具备精细化数据运营的能力,就成为判定一个数据团队成功与否的关键. 在数据从后台走向前台的过程中,数据展示是最后一步关键环节.与冰冷的表

R语言数据操作之apply系列

1 ###################R语言中apply类型问题 2 data<-data.frame(x=c(1,2,3,4),y=c(2,3,4,5),z=c(5,6,7,8)) 3 apply(data,2,mean)##apply针对数据框 4 lapply(data,mean)##lapply针对list,当然对dataframe也有效 5 data1<-list(a=1:10,b=exp(-3:3),c=c(FALSE,FALSE,FALSE)) 6 lapply(data1,

四种典型大数据可视化交互模式及实例

大数据可视化交互设计中,有四种比较典型的交互模式,解决数据的复杂性问题.分别是动态改变视图.多视图关联.视图内容约减.焦点+上下文. 动态改变视图 动态改变视图:导航 动态改变视图:多属性排序 多视图关联 多视图是指将显示区域划分为多个视图或图层,是降低数据复杂性的一种方式.它包括采用同一编码方式编码多个数据子集的小多组图,以及采用不同的编码方式编码同一数据集的多样式图(多视图). 并列放置:便于对比,但需要更大的显示空间 图层叠加:图层数量有较大的限制 概览图和细节图采用相同的编码方式,解决数

R语言数据合并使用merge数据追加使用rbind和cbind

R语言中的横向数据合并merge及纵向数据合并rbind的使用 我们经常会遇到两个数据框拥有相同的时间或观测值,但这些列却不尽相同.处理的办法就是使用merge(x, y ,by.x = ,by.y = ,all = ) 函数. #合并ID<-c(1,2,3,4)name<-c("A","B","C","D")score<-c(60,70,80,90)student1<-data.frame(ID,na