我正在尝试在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()
Run Code Online (Sandbox Code Playgroud)
我正在寻找0到3.6之间的7个均匀分割的箱子和0到-5.4以下的7个均匀分开的箱子,我想要在白色箱子的中间点击0.此外,如果任何人都可以查看热图代码本身,以确保没有明显的错误,我会非常感激.源数据的Pastebin
在这个问题上,我一直在撞墙.我创建一个列表并制作4个副本,其中只有一个共享相同的内存索引.如果我更改原始列表,也会以某种方式更改其中3个副本,其中2个具有不同的内存索引.只有当我使用与原始命令相同的命令创建列表时,我才能创建一个不受原始更改影响的列表.这怎么可能?这是我的控制台的输出:
>>> orig=[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 123, 0]]
>>> id(orig)
151498220
>>> copy1=orig #same index
>>> id(copy1)
151498220
>>> copy2=orig[:] #different index
>>> id(copy2)
151498348
>>> copy3=list(orig) #different index
>>> id(copy3)
151503020
>>> copy4=[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 123, 0]]
>>> id(copy4)
151498636
>>> orig[0][1]=34
>>> copy1
[[0, 34, 0, 0], [0, 0, 0, 0], [0, 0, 123, 0]] #expected, same memory index
>>> copy2
[[0, 34, 0, 0], …Run Code Online (Sandbox Code Playgroud)