Я пытаюсь настроить пользовательский масштаб в R. Мои данные варьируются в значениях от -5,4 до +3,6, и я хочу центрировать данные вокруг 0 (белый). Я хотел бы получить масштаб данных таким образом, чтобы у меня было такое же количество градаций выше и ниже 0 (сейчас я снимаю 7 очков). Проблема, с которой я сталкиваюсь, заключается в том, что я не могу получить правильность масштабирования, и я не уверен, где моя проблема.
Мой код на данный момент (исходные данные находятся в ссылке Pastebin внизу):
png('127-2_4_compare_other.png',width = 1200, height = 800, units = "px")
colfunc <- colorRampPalette(c("blue", "white", "red"))
f <- function(m) t(m)[,nrow(m):1]
colorBarz=matrix(seq(-5.5,4,len=15),nrow=1)
colorBarx=1
source("127-2_4.CompareMatrix.txt")
colorBary=seq(-5.4,3.6,len=15)
cus_breaks=c(-5.400, -4.725, -4.050, -3.375, -2.700, -2.025, -1.350, -0.675, 0.45, 0.90, 1.35, 1.80, 2.25, 2.70, 3.15, 3.60)
layout(matrix(c(1,2), 1, 2, byrow = TRUE), widths=c(9,1))
image(f(Compare2and4),axes=FALSE,ylab="Amino acids",xlab="Position",main="Sample 2 vs. 4",col=colfunc(15),breaks=cus_breaks)
axis(1, seq(from = 0, to = 1, by = 0.03703), labels=c(1:11,1:17))
axis(2, seq(from = 0, to = 1, by = 0.0526),labels=rev(c("A","R","N","D","C","E","Q","G","H","I","L","K","M","F","P","S","T","W","Y","V")),las=2)
image(colorBarx,colorBary,colorBarz,col=colfunc(15),axes=FALSE,xlab="",ylab="log(Sample4 / Sample2)",breaks=cus_breaks)
axis(2,las=2)
dev.off()
Я ищу семь равномерно разбитых ящиков выше 0 до 3.6 и семь равномерно разбитых ячеек ниже 0 до -5.4, и я бы хотел, чтобы 0 попал в середину белого бункера. Кроме того, если кто-то может просмотреть код heatmap сам, чтобы убедиться, что нет очевидных ошибок, я был бы очень признателен. Pastebin исходных данных