У меня есть матрица 1 и 0 во входном файле.Как относительный новобранец к R, я обращаюсь за помощью, чтобы построить 3 вспомогательных участка в виде одного изображения, содержащего:
A. Верхний вспомогательный участок = тепловая карта для всех строк
B. Средний участок = тепловая карта для 1 строки = вектор итоговых значений столбцов
C. Нижний участок = рамочный график для каждого столбца
Пример входного файла находится по этой ссылке
Ниже этого текста приведен пример изображения, которое я создал, но я сшил эти индивидуально созданные сюжеты вместе с Photoshop .Однако у меня слишком много входных файлов, чтобы можно было сделать это вручную.Плюс выравнивание подсюжетов здесь не идеальное.Моя попытка par (mfrow = c (1,3)) не дала хорошо выровненных участков (не показанных здесь).Кроме того, у меня есть некоторые другие стилистические и сюжетные проблемы, описанные ниже - отсюда и этот пост на форуме.Заранее спасибо!
шаг ВВОДА
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()
Идея из этой ссылки