Построение разреженной матрицы с использованием R

#r #ggplot2 #plot

#r #ggplot2 #построение

Вопрос:

У меня разреженная матрица данных. Мои данные выглядят следующим образом:

 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?

Любая помощь будет высоко оценена.

Спасибо.

Комментарии:

1. Это не разреженная матрица. Это data.frame.

Ответ №1:

Попробуйте это. Передайте номер строки в качестве идентификатора. Изменить форму для длительного использования pivot_longer() . Затем нарисуйте график с помощью geom_tile() . Установите ось в соответствии с вашими спецификациями и заполните значениями. Если вы хотите увидеть числа, которые вы можете использовать factor() . Вот код, использующий данные, которыми вы поделились:

 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() определение желаемых цветов:

 #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. Спасибо. Это именно то, что я хочу. Однако есть ли какой-либо способ изменить это на другую цветовую схему?

2. @student_R123 Да, конечно, позвольте мне добавить несколько цветов, чтобы вы могли адаптировать те, которые вам нравятся!

3. @student_R123 Я добавил обновление для вас. Надеюсь, это вам поможет!