我在R中使用plotrix绘制带有数字的颜色矩阵,这里是示例代码:
set.seed(1)
x<-matrix(rnorm(64),nrow=8)
# simulate a correlation matrix with values -0.5 to 0.5
x<-rescale(x,c(-0.5,0.5))
cellcol<-color.scale(cbind(x,c(-1,rep(1,7))),c(0,1),0,c(1,0))[,1:7]
color2D.matplot(x,cellcolors=cellcol,main="Blue to red correlations")
cellcol<-color.scale(cbind(x,c(-1,rep(1,7))),c(0,1),0,c(1,0))[,1:7]
color2D.matplot(x,cellcolors=cellcol,main="Blue to red correlations",show.values=2)
我希望数字显示为两位小数,例如0.12。我使用了show.values = 2,它基本上会显示带有两位小数的值。这应该工作!!!!但在情节中,对于0.500000,它仍显示0.5,为什么会发生这种情况?有什么建议?
答案 0 :(得分:1)
一种解决方法是编辑color2D.matplot()
的函数定义。
致电fix(color2D.matplot)
第97-99行应为:
text(sort(rep((1:xdim[2]) - 0.5, xdim[1])),
texty, round(x, show.values), col = vcol,
cex = vcex)
用以下内容替换它们:
text(sort(rep((1:xdim[2]) - 0.5, xdim[1])),
texty, sprintf("%.2f", round(x, show.values)), col = vcol,
cex = vcex)
sprintf()
的第一个参数是一个格式字符串,表示该字符串应格式化为带有两个尾随零的浮点数。