Colorbar其實就是一系列的顏色,每個顏色對應統計圖中的一個值。比如需要展示組間比較的t值圖。那么colorbar中一個顏色就對應一個t值。那么,理論上,根據t值的取值范圍,生成一系列數值,然后生成相應數量的顏色就應該可以得到一個. colorbar。按照以上思路,利用R中的函數ColorBar即可生成相應的colorbar了。
導入依賴包。
library(s2dverification)
定義生成顏色的函數。colors中的顏色可以自己設定,可以用吸管工具確定原圖中colorbar中的幾個點的顏色。需要注意的是,n應該小於或等於(length(colors)-1)*numOfColor。如果不滿足要求,可以在colors中加入更多的顏色,或者增大numOfColor,或者減小n。
getPalette <- function(n) {
# n should less than (length(colors)-1)*numOfColor
colors <- c("#000123", "#8725C6", "#E05D28", "#F7C744", "#FFFEF3")
numOfColor <- 500
resCols <- c()
for (i in 1:(length(colors))-1) {
tmpCols <- colorRampPalette(c(colors[i], colors[i+1]), numOfColor)
resCols <- c(resCols, tmpCols(numOfColor))
}
colIndex <- seq(1, length(resCols), length.out=n)
return(resCols[colIndex])
}
測試數據,並生成相應的colorbar。
colorMin <- 0
colorMax <- 10
vals <- round(seq(colorMin, colorMax, length.out=50), 2)
pdf("colorbar.pdf", width = 8, height = 10)
ColorBar(vals,
color_fun=getPalette,
label_scale=6,
tick_scale=6,
extra_margin=c(1, 0, 1, 0),
label_digits=3)
dev.off()
如圖: