#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
Я хочу построить приведенную выше матрицу следующим образом:
- ось x должна быть названа как номер строки
- ось 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 Я добавил обновление для вас. Надеюсь, это вам поможет!