Stories

Detail Return Return

R繪圖小工具-配色篇(1)- 色彩展示函數 - Stories Detail

寫在前面:作為一個剛開始從業生信的吊車尾,認為生信技能要來自於網羅,舉一反三,加以思考,為自己的目的加以練習。

本次的思路來自於RColorBrewerggsci

目標:做一個便於保存自己配色,且隨時進行查看的Rscript,後續考慮實用性,再加以製作R包

下面是一個簡單的基於 Base Plotting System 的繪圖代碼,便於適用於不同版本的base-R

功能:輸入一個色彩向量,自動畫出方格圖,並表上數字,方便自行挑選使用的顏色。

點擊查看代碼
visColor <-function(colorset=c("white","black")){
  color_data=data.frame(color_name=paste0("color",c(1:length(colorset))),color_code=colorset)
  n=nrow(color_data)
  color_data$y <- rep(1:ceiling(n / 10), each = 10)[1:n]
  color_data$x <- rep(1:10, length.out = n)
  max_x=max(color_data$x)+1
  max_y=max(color_data$y)+1
  plot(NA, xlim = c(0, max_x), ylim = c(0, max_y), xlab = "", ylab = "", type = "n", axes = FALSE, asp = 1)

for(i in 1:nrow(color_data)) {
  rect(
    color_data$x[i] - 0.5, color_data$y[i] - 0.5,
    color_data$x[i] + 0.5, color_data$y[i] + 0.5,
    col = color_data$color_code[i], border = "black"
  )
  text(
    color_data$x[i], color_data$y[i], labels = i, cex = 1.5, col = "black"
  )
}

# 添加外邊框
rect(0, 0,max_x, max_y, col = NA, border = "black", lwd = 2)
}

測試visColor。

點擊查看代碼
visColor()

 

將一段複製好的顏色,作為向量輸入

點擊查看代碼
visColor <-function(colorset=c("white","black")){
  color_data=data.frame(color_name=paste0("color",c(1:length(colorset))),color_code=colorset)
  n=nrow(color_data)
  color_data$y <- rep(1:ceiling(n / 10), each = 10)[1:n]
  color_data$x <- rep(1:10, length.out = n)
  max_x=max(color_data$x)+1
  max_y=max(color_data$y)+1
  plot(NA, xlim = c(0, max_x), ylim = c(0, max_y), xlab = "", ylab = "", type = "n", axes = FALSE, asp = 1)

for(i in 1:nrow(color_data)) {
  rect(
    color_data$x[i] - 0.5, color_data$y[i] - 0.5,
    color_data$x[i] + 0.5, color_data$y[i] + 0.5,
    col = color_data$color_code[i], border = "black"
  )
  text(
    color_data$x[i], color_data$y[i], labels = i, cex = 1.5, col = "black"
  )
}

# 添加外邊框
rect(0, 0,max_x, max_y, col = NA, border = "black", lwd = 2)
}

 

Add a new Comments

Some HTML is okay.