Исправить порядок метки X при использовании функции mutate и ggplot - PullRequest
0 голосов
/ 15 октября 2018

Я пытаюсь создать текстовую тепловую карту, используя пакет tidyverse.Хотя мне удалось составить тепловую карту, метки Х расположены не так, как указано в моих данных.

Я бы хотел, чтобы метки Х были такими, как я предоставляю.Хотя я нашел несколько решений, я не смог применить их в своем коде.Я также не хочу жестко кодировать столбцы в факторных функциях.Код выглядит следующим образом:

df <- read.table('Mydata_sheet_test.txt', sep="\t", header=TRUE)
df %>% 
  gather(col, Value, -Sample_names) %>% 
  mutate(row = factor(Sample_names, levels = rev(unique(Sample_names))),
         Value = factor(Value)) %>% 
  ggplot(aes(col, row, fill = Value)) + 
  geom_tile(colour="black") + 
  labs(x = "Chromosome names", y = "samples") + 
  theme(axis.text.x = element_text(angle=21,vjust=0.5)) +
  scale_fill_brewer(palette="Paired")

PS: Я все еще прохожу dplyr и основы манипулирования данными, Мои извинения, если есть какое-либо простое решение, и я пропустил его.

Mainкод вежливости: Maurits Evers

Мои данные выглядят так: sample_ID, C1.P, C1.Q, C2.P, C2.Q, C3.P, C3.Q, C4.P, C4.Q, C10.P, C10.Q, C20.P, C20.Q

sam000086, TLM, TLM, TLM, TLM, 3 сП, 3 сП, 3 сП, 3 сП, 3 сП, 3 сП,3 cp, 3 cp

sam000046 ,,,,,,,,,,,, *

sam000028 ,,,,,,, 3 cp, 3 cp, 3 cp, 3 cp,,

sam000092,, 3 сП, TLM, TLM, TLM, TLM, 3 с. П., 3 с. П., 3 с. П., 3 с.TLM ,,, 3 сП, 3 сП, 3 сП, 3 сП, 3 сП, 3 сП

........ и т. Д.

1 Ответ

0 голосов
/ 16 октября 2018

Измените ggplot(aes(col, row, fill = Value)) на ggplot(aes(as_factor(col), row, fill = Value)), если у вас есть tidyverse или forcats.

В противном случае измените его на ggplot(aes(factor(col, levels = unique(col)), row, fill = Value)).

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