美文网首页R语言学习统计与科研R
R语言配色方案: Colors in R

R语言配色方案: Colors in R

作者: 谢俊飞 | 来源:发表于2020-03-22 23:04 被阅读0次

    前言:巧妙的色彩搭配,能够绘制出更具审美价值的图片,令人耳目一新。
    本文主要讲解比较受欢迎的R包配色方案。

    (一):RColorBrewer 包

    调色板有3种类型:连续型调色板、离散型调色板和定性调色板。

    连续型调色板,适用于从低到高(渐变)的有序数据。
    Blues, BuGn, BuPu, GnBu, Greens, Greys, Oranges, OrRd, PuBu, PuBuGn, PuRd, Purples, RdPu, Reds, YlGn, YlGnBu YlOrBr, YlOrRd
    离散型调色板,同时强调中端临界值和数据范围两端的极端值。
    BrBG, PiYG, PRGn, PuOr, RdBu, RdGy, RdYlBu, RdYlGn, Spectral
    定性调色板,适用于名义型或分类型变量。 它们并不代表组之间的大小差异。
    Accent, Dark2, Paired, Pastel1, Pastel2, Set1, Set2, Set3

    rm(list = ls())
    install.packages("RColorBrewer")
    library(RColorBrewer)
    # 绘制 RColorBrewer 调色板
    display.brewer.all()
    head(brewer.pal.info)
         maxcolors category colorblind
    BrBG        11      div       TRUE
    PiYG        11      div       TRUE
    PRGn        11      div       TRUE
    PuOr        11      div       TRUE
    RdBu        11      div       TRUE
    RdGy        11      div      FALSE
    
    图片.png

    绘图应用[1]

    # 通过指定名字来查看调色板
    display.brewer.pal(n = 8, name = 'RdBu')
    # 十六进制颜色规格
    brewer.pal(n = 8, name = "RdBu")
    [1] "#B2182B" "#D6604D" "#F4A582" "#FDDBC7" "#D1E5F0" "#92C5DE" "#4393C3" "#2166AC"
    # RColorBrewer绘制条形图
    barplot(c(2,5,7), col=brewer.pal(n = 3, name = "RdBu"))
    
    图片.png Rplot02.png

    (二):Wes Anderson包

    Wes Anderson,电影导演韦斯·安德森,善于运用色彩。
    最欣赏的一点是他以色调和对称构图来讲述惟妙惟肖的故事情节,而不是使用过多复杂花哨的拍摄方式诠释自己的才能。[1]

    install.packages("wesanderson")
    library(wesanderson)
    # See all palettes
    names(wes_palettes)
    [1] "BottleRocket1"  "BottleRocket2"  "Rushmore1"      "Rushmore"       "Royal1"        
    [6] "Royal2"         "Zissou1"        "Darjeeling1"    "Darjeeling2"    "Chevalier1"    
    [11] "FantasticFox1"  "Moonrise1"      "Moonrise2"      "Moonrise3"      "Cavalcanti1"   
    [16] "GrandBudapest1" "GrandBudapest2" "IsleofDogs1"    "IsleofDogs2" 
    

    绘图应用[2]

    barplot(c(2,5,7), col = wes_palette(n=3, name="GrandBudapest1")) # 此处英文有误
    library(ggplot2)
    ggplot(iris, aes(Sepal.Length, Sepal.Width, color = Species)) + 
      geom_point(size = 2) + 
      scale_color_manual(values = wes_palette(n=3, name="GrandBudapest1"))
    
    Rplot03.png
    Rplot04.png

    (三):创建n个连续颜色的向量

    可以使用函数rainbow(n), heat.colors(n), terrain.colors(n), topo.colors(n)和cm.colors(n)生成n个连续颜色的向量
    绘图应用[3]

    #Create a vector of n contiguous colors
    # Use rainbow colors
    barplot(1:5, col=rainbow(5))
    # Use heat.colors
    barplot(1:5, col=heat.colors(5))
    # Use terrain.colors
    barplot(1:5, col=terrain.colors(5))
    # Use topo.colors
    barplot(1:5, col=topo.colors(5))
    # Use cm.colors
    barplot(1:5, col=cm.colors(5))
    
    • Rplot06.png

    (四):产生渐变颜色colorRamp()和colorRampPalette()[2]

    colorRamp()和colorRampPalette()都可用于建立颜色板。想象一下你现在有一个色板,色板上有红色,蓝色,和白色,你就可以用colorRamp()和colorRampPalette()基于这三个颜色就行调色,两者的不同在于,colorRamp() 可以指定一个小数,返回一个指定的颜色值,需要用rgb方法转换;
    colorRampPalette()返回指定数量的颜色值,两个方法可以达到相同的效果:

    绘图应用[4]

    par(mfrow = c(1, 2))
    b2p1 <- colorRampPalette(c("red", "white","blue"))
    b2p2 <- colorRamp(c("red", "white","blue"))
    barplot(rep(1, 12), axes=F, col = b2p1(12), border = b2p1(12), 
            main = "colorRampPalette")
    
    rgb( b2p2(seq(0, 1, length = 12)), max = 255)
    barplot(rep(1, 12), axes=F,col = rgb( b2p2(seq(0, 1, length = 12)), max = 255),
            border = rgb( b2p2(seq(0, 1, length = 12)), max = 255), main = "colorRamp")
    
    • Rplot05.png

    参考资料:


    1. Wes Anderson's Colour Palettes - 从电影中寻找配色灵感 | Lucca

    2. R语言中的颜色以及色板

    相关文章

      网友评论

        本文标题:R语言配色方案: Colors in R

        本文链接:https://www.haomeiwen.com/subject/yaegdhtx.html