在格子中使用levelplot,我已经想出了如何显示每个单元格的相应值。对于矩阵m:
myPanel <- function(x,y,z, ...){
panel.levelplot(x,y,z,...)
panel.text(x,y, round(m,2),col=bw[col.m])
}
levelplot(m, col.regions=col.range, colorkey=NULL, xlab=NULL, ylab=NULL,
scales = list(x = list(draw = FALSE), y = list(draw = FALSE)),
panel= myPanel)
圆角矩阵值为
round(m,2)
13 14 15 16 17 18
GDcsp -0.44 -0.34 -0.39 -0.35 -0.53 -0.60
GDsor 0.14 0.07 0.03 0.01 0.06 0.09
GDdup 0.43 0.36 0.34 0.36 0.46 0.52
GDhsw 0.22 0.05 0.11 0.00 0.20 0.26
Gdwpa 0.17 0.25 0.32 0.37 0.46 0.47
问题是-0.60和0.00分别在相应的单元格中显示为0.6和0,而我希望所有数字都有两位小数。任何解决这个问题的想法都会受到欢迎。
答案 0 :(得分:1)
myPanel <- function(x,y,z, ...){
panel.levelplot(x,y,z,...)
panel.text(x,y, sprintf("%.2f", m))
}
levelplot(m, colorkey=NULL, xlab=NULL, ylab=NULL,
scales = list(x = list(draw = FALSE), y = list(draw = FALSE)),
panel= myPanel)
您可以使用sprintf
强制输出为小数点后两位。