R语言开发之输出折线图的操作

线形图是通过在多个点之间绘制线段来连接一系列点所形成的图形,这些点按其坐标(通常是x坐标)的值排序,并且它通常用于识别数据趋势。

在R中的通过使用plot()函数来创建线形图,语法如下:

plot(v,type,col,xlab,ylab)

参数描述如下:

v - 是包含数值的向量。

type - 取值“p”表示仅绘制点,“l”表示仅绘制线条,“o”表示仅绘制点和线。

xlab - 是x轴的标签。

ylab - 是y轴的标签。

main - 是图表的标题。

col - 用于绘制点和线两种颜色。

我们接下来尝试使用输入向量和类型参数为“O”创建一个简单的折线图,如下:

运行结果为:

我们再来通过使用附加参数来扩展折线图的功能,例如可以向点和线添加颜色,给图表标题,并在轴上添加标签,如下:

运行结果为:

最后再来尝试使用lines()函数在同一个图表上绘制多个线条,在绘制第一行之后,lines()函数可以使用附加向量作为输入来绘制图表中的第二行,如下:

运行结果为:

好啦,本次记录就到这里了。

补充:R语言基础图形绘制——折线图

简介

折线图通常用来对两个连续变量之间的相互依存关系进行可视化。x轴可以是连续型变量,也可以是离散型变量。生物学中,通常用来表示不同药物剂量下实验对象的变化,或者是基因在不同类型组织或细胞中的表达模式。

1. 基础函数

简单示例:使用plot()函数,改变参数type,更多类型请查看帮助文档。

# 查看作图数据
BOD
# Time demand
# 1 1 8.3
# 2 2 10.3
# 3 3 19.0
# 4 4 16.0
# 5 5 15.6
# 6 7 19.8
op <- par(no.readonly = T)
library(dplyr)
library(tidyverse)
par(mfrow = c(2,2))
BOD %>% {
 plot(demand ~ Time,data = .,type = "l",main = "A")
 plot(demand ~ Time,data = .,type = "b",main = "A")
 plot(demand ~ Time,data = .,type = "s",main = "A")
 plot(demand ~ Time,data = .,type = "o",main = "A")
}
par(op)

目前,基础函数绘制多个分组折线图,需要借助lines()函数。

op <- par(no.readonly = T)
library(dplyr)
library(tidyverse)
par(mar = c(rep(4,4)))
BOD %>% {
 plot(demand ~ Time,data = .,type = "l",col = "red",lwd = 2)
 lines(1:7,seq(8,20,length.out = 7),col = "steelblue",lwd = 2)
}
par(op)

多个分组时,可以借助for循环实现。

2. ggplot()函数

不加任何参数绘制简单折线图。

library(ggplot2)
BOD %>% {
 ggplot(.,aes(Time,demand))+geom_line()
}

library(ggplot2)
library(patchwork)
BOD %>% {
 p1 <- ggplot(.,aes(Time,demand))+geom_line()
 p2 <- ggplot(.,aes(factor(Time),demand,group = 1))+geom_line()
 p1 + p2
}

为了比较因子型和连续型变量的不同,我们将两张图放在一起,可以发现右图中并没有6这个水平。当 x 对应于因子型变量时,必须使用命令 aes(group=1) 以确保 ggplot() 知道这些数据点属于同一个分组,从而应该用一条折线连在一起。

相比于基础函数,ggplot绘制分组折线图简直不要太方便。%>%是管道符,需要加载dplyr包,**{}也可以理解为管道符,.**代表上一级生成的数据,p1 + p2 需要加载patchwork拼图包。

library(plyr)
ToothGrowth %>%
 ddply(c("supp", "dose"), summarise, length=mean(len)) %>% {
 p1 <- ggplot(.,aes(x=dose, y=length, colour=supp)) + geom_line()
 p2 <- ggplot(.,aes(x=dose, y=length, linetype=supp)) + geom_line()
 p1 + p2
 }

如图,分别将supp映射给了颜色和线条类型。

如果要添加数据点等其他类型,可以通过geom系列函数实现。

来吧,实践吧!

3. 实践

我使用的是自己的小鼠早期胚胎卵母细胞到8细胞各时期的测序数据,挑选了大约3300个基因。纵坐标使用的是log2(FPKM)值。

一起来看看ggplot绘制分组折线图有多方便吧

首先需要将数据组织成长数据格式。

head(oo1_long)

x <- length(unique(oo1_long$t))
ggplot(data=oo1_long, aes(x=variable, y=value, group=t)) +
 geom_line(alpha = oo1_long$alpha,color = oo1_long$color,size = oo1_long$size)+
 theme_bw()+
 scale_y_continuous(expand = c(0,0))+
 scale_x_discrete(expand = c(0,0))+
 ylab(label = "log2(fpkm)")+
 xlab(label = "")+
 geom_text(aes(4,10.2,label =paste("cluster1-1", x-1 , sep = '\n')))

其实上面的代码还可以再优化,使用aes()函数设置color等参数。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • R语言 实现输出九九乘法表

    在R语言中,使用cat()函数可以将多个变量连接起来并输出到控制台或者File文件中. 下面,以九九乘法表为例来 演示cat()函数的用法 //jiujiubiao.R ## 九九乘法表 for(i in 1:9){ for(j in 1:i){ m = j*i cat(i,'*',j,'=',m,' ') } cat('\n') } 效果如下: 图(1) 使用cat()输出九九乘法表 补充:R语言 用 sprintf 打印九九乘法表 九九乘法表 for (i in c(1:9)) { for

  • R语言 实现两表连接且输出不重复数据

    在做项目中遇到了如此问题,其中整理的结果表中没有会员ID信息,只有会员电话号码信息,且每一行为唯一一个会员. 另外一张member表中包含会员ID以及会员电话信息,但是这张表有重复的会员信息,也就是说一个会员在member表中多次出现,memeber表比整理的表要大很多. 说明: 1.在项目过程中,数据量较大,用到的是data.table包,需要用到SQL中的语句减少代码量,因此需要sqldf包. 2.以下例子中xx中的a1在yy中都有对应的值. 3.yy中的a1与b是一一对应的关系,不存在同一

  • R语言格式化输出sprintf实例讲解

    用%s替代字符串 name <- 'max' sprintf('my name is %s',name) [1] "my name is max" 用%d替代整数 age <- 18 sprintf('age:%d',age) [1] "age:18" d前面添加数字n,可以添加n-替代数字位数的空格 sprintf('age:%3d',age) [1] "age: 18" d前面添加0加上数字n,可以添加n-替代数字位数的0 spr

  • R语言统计结果输出至本地文件的几种方法示例

    1.sink() 在代码开始前加一行:sink("output.txt"),就会自动把结果全部输出到工作文件夹下的output.txt文本文档.这时在R控制台的输出窗口中是看不到输出结果的.代码结束时用sink()切换回来. 示例: sink("a.txt") x<-rnorm(100,0,1) mean(x) sink() 注:此处输出为mean(x). 2.stargazer() library(stargazer) #导入数据 mydata <-

  • R语言绘制坐标 保存图片的操作

    绘制坐标 有时候我们绘制坐标的时候,需要改变坐标轴的定义,我们以日期为横坐标绘制时间序列为例讲解 先列举简单的例子: rnorm(n, mean = 0, sd = 1) n 为产生随机值个数(长度),mean 是平均数, sd 是标准差 . > rnorm(10,1,sd = 2) [1] 1.98984356 -1.93403191 -1.15324772 0.84623524 -0.73123833 -2.77682328 -0.74316683 -0.02913632 -0.800634

  • R语言 实现在循环中输出图片的操作

    今天在循环导出图片时,遇到了一个问题: 使用R语言导出图片的代码: setwd("E://R") jpeg(file="A.jpeg") print(plot(PEO$X, PEO$Y, pch=PEO$S)) dev.off() 但是若是将此代码运用到循环之中,则只会出来一张图A.jpeg 想了好久原因,发现--..!!!! 命名方法不对啊!!! 只有一个名字!!!当然不行啊!!! 于是搜索如何循环命名- 找到了老朋友paste() yourfilename=pa

  • R语言开发之输出折线图的操作

    线形图是通过在多个点之间绘制线段来连接一系列点所形成的图形,这些点按其坐标(通常是x坐标)的值排序,并且它通常用于识别数据趋势. 在R中的通过使用plot()函数来创建线形图,语法如下: plot(v,type,col,xlab,ylab) 参数描述如下: v - 是包含数值的向量. type - 取值"p"表示仅绘制点,"l"表示仅绘制线条,"o"表示仅绘制点和线. xlab - 是x轴的标签. ylab - 是y轴的标签. main - 是图

  • Android开发自定义控件之折线图实现方法详解

    本文实例讲述了Android开发自定义控件之折线图实现方法.分享给大家供大家参考,具体如下: 前言 折线图是Android开发中经常会碰到的效果,但由于涉及自定义View的知识,对许多刚入门的小白来说会觉得很高深.其实不然,接下来我就以尽量通俗的语言来说明下图折线图效果的实现过程. 效果图 实现过程 首先,选择自定义控件的方式. 自定义控件的实现有四种方式: 1.继承View,重写onDraw.onMeasure等方法. 2.继承已有的View(比如TextView). 3.继承ViewGrou

  • R语言绘图时输出希腊字符上下标及数学公式实现方法

    目录 希腊字母 上下标 paste 一个复杂的例子 进阶 数学公式 通常在我们写论文时,所需要的统计图是非常严谨的,里面的希腊字符与上下脚标都必须要严格书写.因此在使用R绘图时,如何在我们目标图中使用希腊字符.上标.下标及一些数学公式呢?在本博客中我们会进行详细的说明. 后面我们都将以一个最简单的绘图为例,只是将其标题进行修改. 希腊字母 使用希腊字符.上标.下标及数学公式,都需要利用一个函数:expression(),具体使用方式如下: plot(cars) title(main = expr

  • R语言绘制line plot线图示例详解

    目录 Step1.绘图数据的准备 Step2.绘图数据的读取 Step3.绘图所需package的安装.调用 Step4.绘图 最近小仙同学在Nature Cell Biology上看到了这样一张图,很常见的折线图画成这个样子——原来很常见的图标类型也可以“焕发新春”! 今天小仙同学就尝试用R复刻一张类似的折线图. Step1. 绘图数据的准备 首先要把你想要绘图的数据调整成R语言可以识别的格式,建议大家在excel中保存成csv格式.数据的格式如下图:一列表示一种变量,最后一列是每一行的行名.

  • Android开发RecyclerView实现折线图效果

    本文实例为大家分享了Android开发RecyclerView实现折线图效果的具体代码,供大家参考,具体内容如下 效果图如下: 实现的关键是自定义的控件: package com.example.recyclelinechart.test; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; imp

  • R语言编程学习绘制动态图实现示例

    在讨论级数时,可能需要比对前 n n n项和的变化情况,而随着 n n n的递增,通过动态图来反映这种变化会更加直观,而通过R语言绘制动态图也算是一门不那么初级的技术,所以在此添加一节,补充一下R语言的绘图知识. 绘图需要用到ggplot2,为多张图加上时间轴则需要用到gganimate,为了让这些动态图片被渲染,需要用到av.此外,ggplot2绘图需要输入的数据格式为tibble. install.packages("ggplot2") install.packages("

  • R语言绘制数据可视化小提琴图画法示例

    目录 Step1. 绘图数据的准备 Step2. 绘图数据的读取 Step3. 绘图所需package的安装.调用 Step4. 绘图 小提琴图之前已经画过了,不过最近小仙又看到一种貌美的画法,决定复刻一下.文献中看到的图如下: Step1. 绘图数据的准备 首先要把你想要绘图的数据调整成R语言可以识别的格式,建议大家在excel中保存成csv格式.作图数据如下: Step2. 绘图数据的读取 data<-read.csv("your file path", header = T

  • R语言绘制数据可视化小提琴图Violin plot with dot画法

    目录 Step1.绘图数据的准备 Step2.绘图数据的读取 Step3.绘图所需package的安装.调用 Step4.绘图 小提琴图之前已经画过了,不过最近小仙又看到一种貌美的画法,决定复刻一下.文献中看到的图如下: Step1. 绘图数据的准备 首先要把你想要绘图的数据调整成R语言可以识别的格式,建议大家在excel中保存成csv格式.作图数据如下: Step2. 绘图数据的读取 data<-read.csv("your file path", header = T) #注

  • R语言实现漂亮的ROC图效果

    目录 1.读取数据 2.AUC和CI的计算 3.利用ggplot2绘图 4.合并多个ROC曲线结果 pROC是一个专门用来计算和绘制ROC曲线的R包,目前已被CRAN收录,因此安装也非常简单,同时该包也兼容ggplot2函数绘图,本次就教大家怎么用pROC来快速画出ROC图.在医学领域主要用于判断某种因素对于某种疾病的诊断是否有诊断价值.什么是ROC曲线和AUC,以及如何去看ROC曲线的结果,可以这样总结:ROC曲线呢,其实就是每个对应的cutoff值都有一个对应的真阳性率(纵坐标)和假阳性率(

随机推荐