Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >R中共现图

R中共现图
EN

Stack Overflow用户
提问于 2014-09-30 11:58:03
回答 1查看 3.3K关注 0票数 2

我对R非常陌生,我有一个csv文件,看起来

代码语言:javascript
运行
AI代码解释
复制
A   B   C   D
A1   a   v   a
A2   v   v   a
A3   a   a   a

我想用它制作一个co occurrence plot,但是当输入有字符而不是数字时,我想不出如何绘制它。

我试过使用几个包(我无法让它们任何一个工作),其中一个是cooccur。它给了我以下错误"Error in rowSums(spp_site_mat, na.rm = T) : 'x' must be numeric"。如果你能给我指点任何有用的东西或者给出任何代码建议,我会非常感激的。

编辑:

行将有来自A列的值,列将是它们的对应值,"a“和"v”,如这个链接所示。

此外,我有数百个列,因此不能使用as.numeric(table$B)将每一列更改为数字。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-30 13:39:25

您可以使用table每一行来计数唯一的值,然后使用rbind.fill形成一个矩阵。然后,可以使用geom_tile将计数作为标签添加到绘图中。

代码语言:javascript
运行
AI代码解释
复制
# your data
dat <- read.table(text="A   B   C   D
A1   a   v   a
A2   v   v   a
A3   a   a   a", header=TRUE)


library(plyr)
library(ggplot2)
library(reshape2)

# transform your data 
mat <- rbind.fill.matrix(apply(dat[-1], 1, function(i) t(as.matrix(table(i)))))
mat[is.na(mat)] <- 0
rownames(mat) <- dat$A

# plot   
ggplot(melt(mat), aes(Var2, Var1, fill=value)) + 
                 geom_tile() +
                 scale_fill_gradient(limits=c(0,3), low="white") +
                 geom_text( aes(label=value))

编辑

关于代码

代码语言:javascript
运行
AI代码解释
复制
mat <- rbind.fill.matrix(apply(dat[-1], 1, function(i) t(as.matrix(table(i)))))

从里面开始

代码语言:javascript
运行
AI代码解释
复制
apply(dat[-1], 1, function(i) t(as.matrix(table(i))))

applyMARGIN = 1将函数应用于数据行,不包括第一列。该函数的目的是为每一行列出值。as.matrix用于改变输出的格式,t (转置)改变矩阵的方向。(这很可能是一种更简洁的方法)

由于每行中可能没有相同的值(第3行没有v's),所有值都不会在每个表中表示--因此rbind将无法工作。来自plyr包的plyr填充了NA

下面将缺失(NA)替换为零

代码语言:javascript
运行
AI代码解释
复制
mat[is.na(mat)] <- 0
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26129038

复制
相关文章
【R】蜜蜂图beeswarm
蜜蜂图或蜂群图(beeswarm)这个名字,大家可能比较陌生,但是大家肯定都见过他的尊容。下面这张图就是一个典型的蜜蜂图。因为看上去像一群飞舞的蜜蜂而得名。
生信交流平台
2022/09/21
6670
【R】蜜蜂图beeswarm
「R」R传统图形绘制多图
mfrow 和 mfcol 都由 2 个数字指定,一个表示行数、一个表示列数。如果使用 mfrow,那么图像区域会被按行依次使用;如果使用 mfcol,那么图像区域会按列依次使用。
王诗翔呀
2020/07/06
7280
「R」R传统图形绘制多图
「R」生存图微调
survminer包应该是目前最常见的用来做生存分析可视化的包了。之前在公众号也分享过相关的函数使用方法。也有粉丝发邮件向我咨询过一些问题。读者需要记住的是,该包可视化的组件基本都是由ggplot2驱动的,所以常见的ggplot2修改方法同样适用于survminer可视化的生存曲线、表格等等。
王诗翔呀
2020/07/06
6280
「R」生存图微调
Android 惊现小程序「入口」,有图有真相!
12 月 28 日,张小龙在微信公开课上宣布:小程序将于 2017 年 1 月 9 日正式发布。 小程序的入口到底在哪里呢?在演讲中,张小龙却表示,微信中不会有专门的小程序入口。 那么,小程序会在微信
知晓君
2018/06/28
8350
cssjshtml vue中共享变量的使用
一个接口提供查询功能,但一次只能接收传参一个值。 我的需求需要这个接口请求上百次才能返回需要的所有数据。 提供接口无法改变,剩下的只能自己做。 这个功能是用于生成周报对延迟不敏感,一周也就来请求一轮。 问题点是将通过axios 异步获取的 所有请求,将数据统一收集处理。 首先在src/utils/ 下创建 global.js 这个里面用来存共享变量。 const price=[] export default{ price } 在main.js中 声明共享变量。 import global_val fr
葫芦
2019/11/26
7220
用getDisplayMedia实现在Chrome中共享屏幕
原文 / https://webrtchacks.com/chrome-screensharing-getdisplaymedia/
LiveVideoStack
2021/09/01
4.8K0
R绘图|时间热图
在徐凌老师的 Nat Com 文章 Genome-resolved metagenomics reveals role of iron metabolism in drought-induced rhizosphere microbiome dynamics 中有这么一张补充图,介绍了本研究中涉及到的处理和取样的时间线。
小汪Waud
2023/10/24
2270
R绘图|时间热图
R 热图绘制heatmap①
R.package heatmap():用于绘制简单热图的函数 heatmap.2():绘制增强热图的函数 d3heatmap:用于绘制交互式热图的R包 ComplexHeatmap:用于绘制、注释和排列复杂热图的R&bioconductor包(非常适用于基因组数据分析) 首先使用ggplot2画简单热图 data <- as.data.frame(matrix(rnorm(9*10),9,10)) rownames(data) <- paste("Gene", 1:9, sep="_") colnam
用户1359560
2018/08/27
1.1K0
R 热图绘制heatmap①
R可视乎|饼图
饼图(pie chart)被广泛地应用于各个领域,用于表示不同分类的占比情况,通过弧度大小来对比各种分类。饼图通过将一个圆饼按照分类的占比划分成多个切片,整个圆饼代表数据的总量,每个切片(圆弧)表示该分类占总体的比例,所有切片(圆弧)的加和等于100%。
庄闪闪
2021/04/09
1.5K0
R语言绘制Circos图
Circos图加拿大的生物信息科学家 Martin Krzywinski 开发的,最初主要用于基因组序列相关数据的可视化。现在越来越多的领域把Circos图引入其中。今天我们介绍在R语言中如何绘制Circos图。
一粒沙
2019/07/31
5.8K0
R中极树状图实现
极树状图类似于系统发育图或者环形的聚类图,其效果如下图所示: 查了一下相关资料,可以通过以下两种方法实现。以下用mtcars数据为例。 1. ape包 library(ape) data('mtcar
生信编程日常
2020/06/28
1.4K0
R可视乎|气泡图
气泡图是一种多变量图表,是散点图的变体,也可以认为是散点图和百分比区域图的组合[1]。气泡图最基本的用法是使用三个值来确定每个数据序列,和散点图一样。气泡图通过气泡的位置及面积大小,可分析数据之间的相关性。
庄闪闪
2021/04/09
2.3K0
R可视乎|瀑布图
瀑布图(waterfall plot) 用于展示拥有相同的X轴变量数据(如相同的时间序列)、不同的Y轴离散型变量(如不同的类别变量)和Z轴数值变量,可以清晰地展示不同变量之间的数据变化关系。
庄闪闪
2021/04/09
1.5K0
R EnhancedVolcano 绘制火山图
火山图是用于差异表达分析结果可视化的一种有效方法。今天,我们来介绍一个用于增强火山图绘制的强大 R 包:EnhancedVolcano ,该包拥有强大的绘图功能,用户可以简单的通过设置颜色、形状、大小和阴影等参数定义不同的绘图属性,此外通过可以通过添加连线的方式有效避免数据点之间的重叠现象。使用 EnhancedVocalno 包绘制的火山图基本可以直接用于文献发表,可以说非常简单又实用的一款神器了。
王诗翔呀
2020/07/06
6.3K0
R EnhancedVolcano 绘制火山图
R可视乎|圆环图
对于饼图,上一次学习《R语言数据可视化之美》的时候主要利用graphics包和ggplot包(可见R可视乎|饼图)。这几天的学习中发现还有一个更加简便的方法——ggpie包。接下来做简单描述,然后进入圆环图的学习。
庄闪闪
2021/04/09
2.6K0
R 热图绘制heatmap②
使用pheatmap包绘制热图 一般而言,pheatmap较heatmap.2等更为简洁以及易于理解,对于初学者而言是一款不错的热图绘制软件。 rm(list=ls()) setwd("E:\\Rwork") library(pheatmap) #创建数据集test测试矩阵 test = matrix(rnorm(400), 20, 20) colnames(test) <- paste("sample",1:20,sep = "") rownames(test) <- paste("ge
用户1359560
2018/08/27
1.4K0
R 热图绘制heatmap②
R语言绘制森林图
在Meta分析中森林图比较常见,其主要是是以统计指标和统计分析方法为基础,用数值运算结果绘制出的图型。它在平面直角坐标系中,以一条垂直的无效线(横坐标刻度为1或0)为中心,用平行于横轴的多条线段描述了每个被纳入研究的效应量和可信区间,用一个棱形(或其它图形)描述了多个研究合并的效应量及可信区间。它非常简单和直观地描述了Meta分析的统计结果,是Meta分析中最常用的结果表达形式。
一粒沙
2019/07/31
8.1K0
R EnhancedVolcano 绘制火山图
火山图是用于差异表达分析结果可视化的一种有效方法。今天,我们来介绍一个用于增强火山图绘制的强大 R 包:EnhancedVolcano ,该包拥有强大的绘图功能,用户可以简单的通过设置颜色、形状、大小和阴影等参数定义不同的绘图属性,此外通过可以通过添加连线的方式有效避免数据点之间的重叠现象。使用 EnhancedVocalno 包绘制的火山图基本可以直接用于文献发表,可以说非常简单又实用的一款神器了。
章鱼猫先生
2021/10/15
1.3K0
R EnhancedVolcano 绘制火山图
R语言绘制箱图
箱图 简单点数就是像一个箱子的图,用于表征数据的分布。 百度定义:箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在各种领域也经常被使用,常见于品质管理。它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比 较。箱线图的绘制方法是:先找出一组数据的最大值、最小值、中位数和两个四分位数;然后, 连接两个四分位数画出箱子;再将最大值和最小值与箱子相连接,中位数在箱子中间。 数据 使用R自带的数据 代码 导入数据,不想解释各行各列
DrugScience
2021/02/04
1.2K0
R语言绘制箱图
R绘制网络图
对于网络图,其实我们并不陌生,用的比较普遍的是Cytoscape这个软件。不过,我们今天的主角是R包---igragh。相比Cytoscape,igragh的便利之处就是你不用趴在电脑上很痛苦的去一一调整节点的大小,颜色等属性。接下来,我就开启小白学习之旅了。
生信交流平台
2020/08/05
2K0

相似问题

R中共现数据的模拟

23

R矩阵与共现分析

16

R生成共现矩阵

20

使用r创建共现矩阵。

24

如何使用R创建共现矩阵

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文