引言

折线图一般用于描述一维变量随着某一连续变量变化的情况,连续变量通常为时间。换句话说,折线图最适合描述时间序列数据的变化情况。当然随着离散变量变化也是可以的,不过这个离散变量必须是有序的。

画一条折线图

一条基本的折线图还是比较简单的,只要在ggplot里的aes传入x,y数据且geom指定为line线即可。如果x是连续变量,直接传入即可。如果x是离散变量,此时x需要因子化,并在aes里设定group参数为1.

线可以是实线,也可以是点状的,可以用个linetpye进行设定,参数可以选择solid, dashed, dotted等。

library(gcookbook)
library(ggplot2)
#连续变量的情况
ggplot(BOD, aes(x=Time, y=demand)) + geom_line()
#离散变量的情况
BOD1 <- BOD # 赋值数据
BOD1$Time <- factor(BOD1$Time)#变量因子化
ggplot(BOD1, aes(x=Time, y=demand, group=1)) + geom_line(linetype="dotted")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

当然如果需要改变y轴的范围,可以用在后面加入ylim(a, b))进行设置。 
 

给折线图增加点

有时候我们需要在折线图上显示对应x轴的点数据,从而可以更加清晰的辨别原始数据,这特别适合数据比较稀疏的情况,比如上述没有6的数据情况。我们直接在代码后面加上geom_point()就可以了。如果想改变点的大小和形状,控制size和shape这两个参数就可以了。

ggplot(BOD, aes(x=Time, y=demand)) + geom_line() + geom_point(size=4, shape=20)
  • 1

画多条折线图

有时候我们想对某一离散变量进行分组,画出多个折线图进行比较。

supp1=c("OJ","OJ","OJ","VC","VC","VC")
dose1=c(0.5,1.0,2.0,0.5,1.0,2.0)
length1=c(13.23,22.70,26.06,7.98,16.77,26.14)
tgg=data.frame(supp1,dose1,length1)
ggplot(tgg, aes(x=factor(dose1), y=length1, colour=supp1,group=supp1)) + geom_line(size=2)#x为药剂剂量,并非连续型变量
  • 1
  • 2
  • 3
  • 4
  • 5

 
有时候你还想在比较的两条线给加上数据点,可以在aes里面设置shape或者fill参数,两种方法得出的图大致相同,除了点形状差异。前者,两条线上的点形状各异,后者点形状相同。

#设置shape参数
ggplot(tgg, aes(x=dose1, y=length1, color=supp1,shape=supp1)) + geom_line() +geom_point(size=4)
#设置fill参数
ggplot(tgg, aes(x=dose1, y=length1, color=supp1,fill=supp1)) + geom_line() +geom_point(size=4)
  • 1
  • 2
  • 3
  • 4

 
 
细心的你会发现,两条线上游数据重叠了,如果想区分开,使用position_dodge函数是个好办法。

ggplot(tgg, aes(x=dose1, y=length1, shape=supp1)) +
geom_line(position=position_dodge(0.2)) + # Dodge lines by 0.2
geom_point(position=position_dodge(0.2), size=4)#控制两线各向左向右移0.2的聚类,线也移,点也移,永远不分开。
  • 1
  • 2
  • 3

 
基本的画法就这些,个人认为画的质量可以与EXCEL相媲美。

R语言ggplot2包之画折线图相关推荐

  1. R语言ggplot2绘制平滑曲线的折线图简单小例子

    R语言ggplot2常规的折线图 library(ggplot2) df<-data.frame(x=1:10,y=sample(1:10,10)) ggplot(df) +geom_line( ...

  2. 用R中ggplot2包做箱线图、折线图、条形图

    用R中ggplot2包做箱线图.折线图.条形图(横.纵) 使用ggplot2完成画图工作 建议 箱线图 折线图 条形图 (纵)背景白色+柱子颜色一致 (纵)条形按y值降序排列+去掉边框线+红色渐变 ( ...

  3. R语言ggplot2可视化绘制Marimekko/Mosaic图实战:自定义函数绘制Marimekko/Mosaic图(添加数值、标题、色彩配置)、ggmosaic包绘制Marimekko图

    R语言ggplot2可视化绘制Marimekko/Mosaic图实战:自定义函数绘制Marimekko/Mosaic图(添加数值.标题.色彩配置).ggmosaic包绘制Marimekko图 目录

  4. 使用R语言ggplot2包绘制pathway富集分析气泡图(Bubble图):数据结构及代码

    气泡图是在笛卡尔坐标系同加入大小的参数所形成的可以表示三个变量关系的图例.在对基因完成GO/KEGG分析后,使用气泡图可以直观的展示pathway.pvalue.count之间的关系.下面为使用R语言 ...

  5. 数据可视化——R语言ggplot2包绘制相关矩阵为热图

    数据可视化--R语言ggplot2包绘制相关矩阵为热图 概述:R语言软件和数据可视化--ggplot2快速绘制相关矩阵为热图.本文翻译了一篇英文博客,博客原文链接:http://www.sthda.c ...

  6. 数据可视化——R语言ggplot2包绘制精美的小提琴图(并箱线图或误差条图组合)

    数据可视化--R语言ggplot2包绘制精美的小提琴图(并箱线图或误差条图组合) 概述:R语言使用ggplot2工具包绘制小提琴图.为了使数据表达更加丰富,同时将小提琴图与箱线图和误差条图相结合.另外 ...

  7. [置顶]R语言 ggplot2包

    R语言  ggplot2包的学习 分析数据要做的第一件事情,就是观察它.对于每个变量,哪些值是最常见的?值域是大是小?是否有异常观测? ggplot2图形之基本语法: ggplot2的核心理念是将绘图 ...

  8. R语言ggplot2可视化分组的重叠图实战:grouped overlay plot

    R语言ggplot2可视化分组的重叠图实战:grouped overlay plot 目录 R语言ggplot2可视化分组的重叠图实战:grouped overlay plot #仿真数据

  9. R语言ggplot2可视化:可视化华夫饼图(Waffle Chart) 、华夫饼图可以直观地显示完成度(百分比)或者部分占整体的比例、华夫饼图适合于同类型指标的比较(Waffle Chart)

    R语言ggplot2可视化:可视化华夫饼图(Waffle Chart) .华夫饼图可以直观地显示完成度(百分比)或者部分占整体的比例.华夫饼图适合于同类型指标的比较(Waffle Chart) 目录

最新文章

  1. python软件安装教程-python软件安装
  2. Java String类源码解析
  3. Kotlin极简教程
  4. session 重写进入redis测试
  5. dpkg status database is locked by another process
  6. java二分法排序算法_Java中使用二分法排序
  7. 封装和使用Docker流程
  8. centos7使用iso镜像离线安装依赖工具
  9. 如何高效率的学习Web前端,个人经验分享
  10. [走过的路]联想时光——人艰不拆(店员篇+推销员篇)
  11. 4 篇 NAR | 生物大数据时代,如何做好数据管理和再利用,发IF10+的数据库文章?...
  12. html图片自动在div里放大,HTML5+CSS3实现图片的放大/缩小
  13. 希尔贝壳荣获“北京市创新型中小企业”称号
  14. 网络分流器|网络分流器|网络分流采集器的应用领域
  15. 关于工程导论的读书计划表
  16. ubuntu18.04使用蓝牙适配器
  17. WKT、SRID、EPSG概念
  18. 利用MODIS 16A2数据计算流域月尺度蒸散发(ET)
  19. 部署SSM项目到阿里云服务器ECS
  20. 深度学习中迁移学习方法原理

热门文章

  1. 如何通过C#开发一个媒体播放器(中)
  2. 剑指offer(C++)-JZ52:两个链表的第一个公共结点(数据结构-链表)
  3. 华为机试HJ20:密码验证合格程序
  4. python 库总结_最近用的python 库总结
  5. python分类算法评估模型_Python机器学习(sklearn)——分类模型评估与调参总结(下)...
  6. mysql getnum函数_Mysql中实现提取字符串中的数字的自定义函数分享
  7. 政史系列:《社会契约论》读书笔记
  8. 工作中如何设计秒杀场景
  9. 构造函数与析构函数的重载及浅拷贝和深拷贝
  10. C++编程题-职工有职工号,姓名,年龄.输入n个职工的信息,找出3个年龄最小的职工打印出来