首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用R绘制稀疏矩阵

用R绘制稀疏矩阵
EN

Stack Overflow用户
提问于 2020-10-29 15:10:50
回答 1查看 256关注 0票数 1

我有一个稀疏数据矩阵。我的数据如下:

代码语言:javascript
复制
x1=rbinom(5,1,0.5)
x2=rbinom(5,1,0.2)
x3=rbinom(5,1,0.2)
data_co=data.frame(x1,x2,x3)

  x1 x2 x3
1  0  1  0
2  1  0  0
3  1  0  0
4  0  1  0
5  0  0  0

我想按以下方式绘制上述矩阵:

  1. x轴应命名为行号
  2. y轴应标记为列号。

我尝试了R中的图像函数,得到了这样的输出:

但是轴标签不是我想要的格式。这是我能用R做的事吗?

任何帮助都将不胜感激。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-29 15:17:46

尝尝这个。将行号转换为id。使用pivot_longer()将其重塑为long。然后用geom_tile()勾勒出这幅图。根据您的规格设置轴,并按值填充。如果您想查看数字,可以使用factor()。在这里,使用您共享的数据的代码:

代码语言:javascript
复制
library(tidyverse)
#Code
data_co %>% rowid_to_column('id') %>%
  pivot_longer(-id) %>%
  ggplot(aes(x=factor(id),y=name,fill=factor(value)))+
  geom_tile(color='black')+xlab('x')+ylab('col')+
  labs(fill='Var',color='Var')

输出:

如果需要更改颜色,可以使用scale_fill_manual()定义所需的颜色:

代码语言:javascript
复制
#Code 2
data_co %>% rowid_to_column('id') %>%
  pivot_longer(-id) %>%
  ggplot(aes(x=factor(id),y=name,fill=factor(value)))+
  geom_tile(color='black')+xlab('x')+ylab('col')+
  labs(fill='Var',color='Var')+
  scale_fill_manual(values=c('magenta','yellow'))

输出:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64593939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档