返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >R语言开发之输出折线图的操作
  • 152
分享到

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

2024-04-02 19:04:59 152人浏览 泡泡鱼
摘要

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

线形图是通过在多个点之间绘制线段来连接一系列点所形成的图形,这些点按其坐标(通常是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等参数。

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

--结束END--

本文标题: R语言开发之输出折线图的操作

本文链接: https://lsjlt.com/news/122905.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • R语言开发之输出折线图的操作
    线形图是通过在多个点之间绘制线段来连接一系列点所形成的图形,这些点按其坐标(通常是x坐标)的值排序,并且它通常用于识别数据趋势。 在R中的通过使用plot()函数来创建线形图,语法如...
    99+
    2024-04-02
  • R语言数据的输入和输出操作
    数据的载入 R本身已经提供了超过50个数据集,而在众多功能包中,默认的数据集被存放在datasets程序包中,通过函数data()k可以查看系统提供所有的数据包,同时可以通过函数li...
    99+
    2024-04-02
  • R语言 实现在循环中输出图片的操作
    今天在循环导出图片时,遇到了一个问题: 使用R语言导出图片的代码: setwd("E://R") jpeg(file="A.jpeg") print(plot(PEO$X, PE...
    99+
    2024-04-02
  • R语言开发之CSV文件的读写操作实现
    在R中,我们可以从存储在R环境外部的文件读取数据,还可以将数据写入由操作系统存储和访问的文件。这个csv文件应该存在于当前工作目录中,以方便R可以读取它, 当然,也可以设置自己的目录...
    99+
    2024-04-02
  • R语言绘图大小设定的操作
    图片大小设定 x = c(1:10) y = c(11:20) par(pin = c(5,3))#pin()函数控制图形的尺寸 plot(x = x, y = y) x...
    99+
    2024-04-02
  • R语言学习之线图的绘制详解
    目录线图单线图多线图横轴文本线图线图 线图是反映趋势变化的一种方式,其输入数据一般也是一个矩阵。 单线图 假设有这么一个矩阵,第一列为转录起始位点及其上下游5 kb的区域,第二列为H...
    99+
    2024-04-02
  • R语言 检验多重共线性的操作
    函数kappa() df<-data.frame() df_cor=cor(df) kappa(df_cor, exact=T) 当 κ<100κ<100 ...
    99+
    2024-04-02
  • R语言-绘制双坐标图直方图与折线的结合方式
    看代码吧~ par(mar = c(5, 5, 3, 4)+0.1) #似乎是设置图片位置 bar<-barplot(gu[1:22,6],xlim=c(0.5,26),y...
    99+
    2024-04-02
  • R语言作图之density plot(密度图)的制作步骤
    上次分享了小提琴曲线(violin plot)的作图方法,今天小仙同学给大家介绍一下如何用R画出漂亮的密度图(density plot)。 Step1. 绘图数据的准备 首先还是要...
    99+
    2024-04-02
  • R语言之左连接的三种实现操作
    数据处理中经常遇到表连接问题,本次介绍R语言中三种左连接方法,这三种是等价的,不过会有时间快慢问题,斟酌使用。 法一: > data0 <- merge(a,c,al...
    99+
    2024-04-02
  • R语言之xlsx包读写Excel数据的操作
    感谢Adrian A. Drǎgulescu发布的xlsx包 xlsx包提供了必要的工具来与Excel 2007进行交互。用户可以阅读和编写xlsx,并可以通过设置数据格式、字体、颜...
    99+
    2024-04-02
  • R语言绘制坐标 保存图片的操作
    绘制坐标 有时候我们绘制坐标的时候,需要改变坐标轴的定义,我们以日期为横坐标绘制时间序列为例讲解 先列举简单的例子: rnorm(n, mean = 0, sd = 1) n...
    99+
    2024-04-02
  • R语言 ggplot2改变柱状图的顺序操作
    如下所示: library(ggplot2) library(ggthemes) dt = data.frame(obj = c('A','D','B','E','C'), va...
    99+
    2024-04-02
  • R语言ggplot2设置图例(legend)的操作大全
    目录基本箱线图(带有图例)移除图例修改图例的内容颠倒图例的顺序隐藏图例标题修改图例中的标签修改data.frame的factor修改标题和标签的显示修改图例的框架设置图例的位置隐藏斜...
    99+
    2024-04-02
  • R语言利用caret包比较ROC曲线的操作
    说明 我们之前探讨了多种算法,每种算法都有优缺点,因而当我们针对具体问题去判断选择那种算法时,必须对不同的预测模型进行重做评估。 为了简化这个过程,我们使用caret包来生成并比较不...
    99+
    2024-04-02
  • R语言多线程运算操作(解决R循环慢的问题)
    已经大半年没有更新博客了。。最近都跑去写分析报告半年没有R 这次记录下关于R循环(百万级以上)死慢死慢的问题,这个问题去年就碰到过,当时也尝试过多线程,but failed........
    99+
    2024-04-02
  • 利用R语言绘制时间序列图的操作
    数据 GDP.csv文件,存储1879~2019年河南省GDP数据 绘图 # 读取数据, 首先将excel 格式的转化为 csv 格式 再读取 h <- read.tab...
    99+
    2024-04-02
  • R语言给图形填充颜色的操作(polygon函数)
    1. 使用polygon进行纯色填充 # polygon函数介绍 polygon(x, y = NULL, density = NULL, angle = 45, bor...
    99+
    2024-04-02
  • R语言如何实现检验多重共线性的操作
    小编给大家分享一下R语言如何实现检验多重共线性的操作,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!函数kappa()df<-data.frame()df_cor=cor(df)kappa(df_cor, e...
    99+
    2023-06-14
  • 【开发语言】C语言与Python的互操作详解
    博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头...
    99+
    2023-09-09
    开发语言 c语言 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作