Как я могу создать линейную визуализацию в R? - PullRequest
0 голосов
/ 06 июня 2019

Я совершенно новичок в программировании и R, так что будьте осторожны со мной ;-) - после обширных исследований моей проблемы, я все еще не могу понять, как ее решить ...

Я хочу отобразить домены белка, используя ggplot2. Я подумал, что лучше всего использовать phyloseq::plot_bar(), но почему-то мне не удается это сделать.

Я пытался вычислить столбчатую диаграмму в виде столбцов, чтобы визуализировать мой белок, но в результате я получил домены в неконкретном порядке.

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

Data table used for analysis

Когда я использую ggplot для вычисления гистограммы, это показано:

ggplot(my_data, aes(x="", y=length, fill=description)) + 
  geom_bar(stat="identity")

Bar Plot of Domain sequence

Однако мне нужна линейная визуализация, которая отображает длину каждого домена (описание) и сохраняет порядок в соответствии с их индивидуальной начальной точкой, установленной в «start».

1 Ответ

0 голосов
/ 06 июня 2019

Если я правильно понимаю, следующее более или менее то, что вы хотите.

library(ggplot2)
library(dplyr)

my_data %>%
  mutate(desc = sprintf('%03d%s', start, description)) %>%
  ggplot(aes(x = "", y = length, fill = desc)) +
  geom_bar(stat="identity") +
  scale_fill_manual(name = 'Description',
                    values = my_data$description,
                    labels = my_data$description) +
  xlab(NULL)

enter image description here

Данные.

my_data <-
structure(list(start = c(1, 48, 175, 196, 308, 510, 526), 
length = c(47, 127, 21, 112, 202, 16, 10), description = 
structure(c(1L, 2L, 3L, 2L, 4L, 2L, 3L), .Label = c("A", 
"B", "C", "D"), class = "factor")), row.names = c(NA, -7L),
class = "data.frame")
...