Настройка сюжетов и совмещение тепловых карт и боксплотов - PullRequest
0 голосов
/ 28 июня 2019

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

A. Верхний вспомогательный участок = тепловая карта для всех строк

B. Средний участок = тепловая карта для 1 строки = вектор итоговых значений столбцов

C. Нижний участок = рамочный график для каждого столбца

Пример входного файла находится по этой ссылке

Ниже этого текста приведен пример изображения, которое я создал, но я сшил эти индивидуально созданные сюжеты вместе с Photoshop .Однако у меня слишком много входных файлов, чтобы можно было сделать это вручную.Плюс выравнивание подсюжетов здесь не идеальное.Моя попытка par (mfrow = c (1,3)) не дала хорошо выровненных участков (не показанных здесь).Кроме того, у меня есть некоторые другие стилистические и сюжетные проблемы, описанные ниже - отсюда и этот пост на форуме.Заранее спасибо!Example_composite_manual_stitch


шаг ВВОДА

input=read.table("test_Matrix.tab",header=TRUE,sep="\t") 

С этой ссылки

input_numerical=data.matrix(input, rownames.force = NA)

HEATMAP для всех рядов

Из этой ссылки

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

jpeg(file="Heatmap.jpg",res=300,width=8,height=11,units="in",bg="white")
heatmap(input_numerical,Colv = NA, Rowv = NA, scale="none", col = c("deepskyblue","goldenrod1"),labRow="",main="title")
dev.off()

BOXPLOT для каждого из столбцов

От этой ссылки

Задача (и) -

Я хочу, чтобы окончательная метка галочки оси Xбыть окончательным именем столбца любого входного файла, поэтому здесь должно быть C48, а не C47

Это свойство не выровнено с тепловой картой (из-за разницы в полях по умолчанию?)

jpeg(file="Boxplot.jpg",res=300,width=8,height=3.5,units="in",bg="white")
boxplot(input_numerical, use.cols = TRUE,col=c("red"))
dev.off()

HEATMAP для вектора итогов столбцов

Задачи (ы) -

Это изображение слишком высокое, я хочу более короткое изображение - Если я пытаюсь высоту = 1,5, мое сообщение об ошибкеis - Ошибка в plot.new (): слишком большие поля рисунка.

Он не выровнен по двум другим подпунктам.

Я также не знаю, как подавить X иМетки оси Y на этом графикеи вместо этого пометьте отметки по оси X с помощью C1-C48, как на тепловой карте (или некоторых из них).На составном изображении, загруженном выше, я обрезал оригинальный сюжет, который выше и имеет запутанные метки X, Y.

col_tot = colSums(input_numerical)
max_tot = max(col_tot)
norm_col_tot_matrix=data.matrix(col_tot/max_tot, rownames.force = NA)
colfunc <- colorRampPalette(c("deepskyblue", "goldenrod1"))

Идея из этой ссылки

jpeg(file="ColTotals_HeatMap.jpg",res=100,width=8,height=4,units="in",bg="white")
image(as.matrix(norm_col_tot_matrix),col=colfunc(48))
dev.off()

Идея из этой ссылки

...