как составить тепловую карту, когда у меня есть 2 условия, каждое из которых в трех экземплярах? - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь создать тепловую карту с помощью ggplot.Мои фактические данные огромны.Но в этом примере я не могу заставить ggplot 1) построить это и 2) построить условия "A" и "B" параллельно друг другу (рядом на одном графике)

Iпопытался с помощью команды dpyr collect () определить «x» и «y» для тепловой карты, но получил следующий ответ:

          key value
1   condition    A1
2   condition    A1
3   condition    A1
4   condition    A2
5   condition    A2
6   condition    A2
...
...
...
32 expression     5
33 expression     6
34 expression     7
35 expression     8
36 expression     9

library(tidyverse)

пример данных 1

Matrix1 <- data.matrix(matrix(1:9, nrow = 3,
dimnames = list(c('AC009234.1' , 'ACSL5' , 'ADAMTS15')), byrow = FALSE))

пример данных 2

Matrix2 <-data.matrix(matrix(1:9, nrow = 3,
dimnames = list(c('AC009234.1' , 'ACSL5' , 'ADAMTS15')), byrow = FALSE))

набор образцов данных головы

df_1 <- `colnames<-`(Matrix1, c("A1", "A2", "A3"))
df_2 <- `colnames<-`(Matrix2, c("B1", "B2", "B3"))

объединяет наборы данных и преобразовывает их в фрейм данных

data <- as.data.frame(cbind(df_1, df_2))

Пробует x и значения

mydata <- gather(data, key = condition, value = expression)

образец графика

p <- (ggplot(mydata, aes(Condition, expression, fill = expression)) 
      + geom_tile(aes(fill = expression), colour = "white")
      + scale_fill_gradient(low = "blue", high = "red"))
p

должно быть 2 ключа, насколько я понимаю, условия "A" и "B".И мне нужно, чтобы условия были на оси х на графике тепловой карты.СПАСИБО заранее!

1 Ответ

0 голосов
/ 30 мая 2019

Используя ваши данные, я думаю, что последним пропущенным шагом является извлечение буквы из поля condition, которое имеет 6 значений на основе столбцов data (A1, A2, A3, B1, B2, B3).

mydata %>%
  separate(condition, c("condition", "version"), -1) %>%
  ggplot(aes(condition, expression, fill = expression)) + 
  geom_tile(aes(fill = expression), colour = "white") +
  scale_fill_gradient(low = "blue", high = "red")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...