作圖系列之生成ColorBar


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()

如圖:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM