中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
R語言顏色綜合運用與色彩方案共享

R語言顏色綜合運用與色彩方案共享

2016-11-25 16:11

限時干貨下載:添加微信公眾號“數(shù)據(jù)玩家「fbigdata」”

回復【7】免費獲取【完整數(shù)據(jù)分析資料?。ò⊿PSS、SAS、SQL、EXCEL、Project)!】

來源:EasyCharts,獲授權(quán)轉(zhuǎn)載。

今天這篇主要講解R語言顏色綜合運用,主要跟大家介紹如何提取那些專業(yè)色彩包中的顏色搭配用于在基礎(chǔ)繪圖系統(tǒng)和高級繪圖系統(tǒng)中共享。

其實無論是R語言的預設(shè)配色系統(tǒng)、自定義顏色表還是哪些專屬配色包,我們所使用(或者R語言識別的)的僅僅就是一組字符向量所代表的色值而已,并不神秘。

通過scales中的色彩獲取函數(shù),我們可以將專屬配色主題(RColorBrewer、ggthemes)中的配色主題提取出來,以函數(shù)的形式傳遞給基礎(chǔ)繪圖系統(tǒng)(plot)以及ggplot繪圖系統(tǒng)。

本文按照三部分進行講解:

  • RColorBrewer部分:

  • ggthemes部分:

  • scales::brewer.pal運用:

RColorBrewer部分

關(guān)于RColorBrewer包之前在寫ggplot函數(shù)系統(tǒng)的時候已經(jīng)有所涉獵,其中專門講解過它的官方配色網(wǎng)站:http://colorbrewer2.org/#

這是一個非常神奇的網(wǎng)站,RColorBrewer包中的配色方案全部來源于此,而且網(wǎng)站上允許自定義色彩序列和類型,衍生出來的顏色要比該包中的配色資源多出很多倍。

library(RColorBrewer)

display.brewer.pal(n, name)

display.brewer.all(type="all")

ColorBrewer設(shè)計團隊將配色方案分為三種:

  • seq:連續(xù)漸變色

  • div:雙向漸變色

  • qual:分類色

通過display函數(shù)可以查看不同類型的色板:

顏色查看:

display.brewer.all(type = "all") #查看所有色板

display.brewer.all(type = "seq") #查看單色漸變色板

display.brewer.all(type = "div") #查看雙色漸變色板

display.brewer.all(type = "qual") #查看離散(分類)色板

以上通過display四個函數(shù)成功顯示了全部色板、單色漸變色板、雙色漸變色板、離散(分類)色板

當然你也可以通過display.brewer.pal(n, name)函數(shù)顯示指定名稱的顏色主題:

display.brewer.pal(9, "BuGn")

par(mfrow=c(1,5),mar=c(1,1,2,1),xaxs="i", yaxs="i")

mycolors<-brewer.pal(9, "BuGn")

barplot(rep(1,times=9),col=mycolors,border=mycolors,axes=FALSE, horiz=T,main="MyColors of BuGn ")

mycolors<-brewer.pal(9, "OrRd")

barplot(rep(1,times=9),col=mycolors,border=mycolors,axes=FALSE, horiz=T,main="MyColors of OrRd")

mycolors<-brewer.pal(9, "YlGn")

barplot(rep(1,times=9),col=mycolors,border=mycolors,axes=FALSE, horiz=T,main="MyColors of YlGn")

mycolors<-brewer.pal(9, "Oranges")

barplot(rep(1,times=9),col=mycolors,border=mycolors,axes=FALSE, horiz=T,main="MyColors of Oranges")

mycolors<-brewer.pal(9, "Blues")

barplot(rep(1,times=9),col=mycolors,border=mycolors,axes=FALSE, horiz=T,main="MyColors of Blues")

dev.off()

大家已經(jīng)看到了,通過brewer.pal(n, "name")函數(shù),可以很輕松的提取出你想要的配色主題。

如果你想要某個配色主題的其中幾個色值,可使用如下方式提?。?/p>

display.brewer.pal(6, "BuGn")#按順序提取前六個

如果想要提取某一組色彩主題不連續(xù)的顏色,可以使用文本函數(shù):

library(scales)

a<-brewer.pal(9, "BuGn")

show_col(a[c(1,3,5,7,9)],labels=F)

通過向量合并,你還可以自己從色彩包中自定義色彩方案。

b1<-brewer.pal(9, "BuGn");b2<-brewer.pal(9,"Blues")

c<-c(b1[c(1,3,5,7,9)],b2[c(2,4,6,8)])

show_col(c,labels=F)

其實都是些很簡單的文本函數(shù)組合,畢竟色彩方案在軟件中也就是一組字符向量而已。

以上這些色彩方案可以很容易的應(yīng)用到基礎(chǔ)繪圖系統(tǒng)和ggplot繪圖系統(tǒng)中。

c<-c(50,30,50,70,90,40)

names(c)<-LETTERS[1:6]

mycolor<-brewer.pal(9,"Greens")

pie(sort(c,decreasing=T),labels=names(c),col=mycolor[c(3,5,5,6,7,9)],clockwise=T,radius=1,border=F)

library(ggplot2)

library(plyr)

mydata<-data.frame(c)

ggplot(data=mydata,aes(x=factor(1),y=c,fill=factor(c),order=desc(c)))+

geom_bar(stat="identity",width=1,col="white")+

coord_polar(theta = "y",start=0)+

theme(panel.grid = element_blank(),

panel.background = element_blank(),

axis.text = element_blank(),

axis.ticks = element_blank(),

axis.title = element_blank())+

scale_fill_brewer(palette="Greens",labels=c("E", "D", "A","C","F","B"))+

guides(fill=guide_legend(reverse=TRUE,title=NULL))

ggthemes部分:

接下來講解ggthemes部分,其實ggthemes包原本是轉(zhuǎn)為ggplot2包開發(fā)的輔助包(前面加的前綴——gg就可以看出來,這種包還有很多),里面提供了大量高質(zhì)量的主題、顏色方案。其中就有我們所熟知的economist主題方案以及wsj方案,還有諸如stata、excel、tableau、solarized、tufte等主題方案。

ggthemes包中的色彩方案都是打包好,命名過的,所以我們引用的時候,只需賦值即可。

這里以economist和WSJ為例:

library(ggthemes)

m1<-economist_pal()(6)

show_col(m1)

mycolor<-m1<-economist_pal()(5)

pie(sort(c,decreasing=T),labels=names(6),col=mycolor,border=F,clockwise=T,init.angle=90,radius=1)

ggplot(data=mydata,aes(x=factor(1),y=c,fill=factor(c),order=desc(c)))+

geom_bar(stat="identity",width=1,col="white")+

coord_polar(theta = "y",start=0)+

theme(panel.grid = element_blank(),

panel.background = element_blank(),

axis.text = element_blank(),

axis.ticks = element_blank(),

axis.title = element_blank())+

scale_fill_economist(labels=c("E", "D", "A","C","F","B"))+

guides(fill=guide_legend(reverse=TRUE,title=NULL))

m2<-wsj_pal()(6)

show_col(m2)

mycolor<-m1<-wsj_pal()(6)

pie(sort(c,decreasing=T),labels=names(c),col=mycolor,border=F,clockwise=T,init.angle=90,radius=1)

ggplot(data=mydata,aes(x=factor(1),y=c,fill=factor(c),order=desc(c)))+

geom_bar(stat="identity",width=1,col="white")+

coord_polar(theta = "y",start=0)+

theme(panel.grid = element_blank(),

panel.background = element_blank(),

axis.text = element_blank(),

axis.ticks = element_blank(),

axis.title = element_blank())+

scale_fill_wsj(labels=names(c))+

guides(fill=guide_legend(reverse=TRUE,title=NULL))

其實關(guān)于economist和wsj的配色主題遠不止這些元素,里面規(guī)定了詳細的序列用色標準、線條用色標準、形狀標準和背景色參考方案,這些信息,你可以通過使用ggthemes_data函數(shù)進行查看:

#WSJ背景色

ggthemes_data$wsj$bg

gray green blue brown

"#efefef" "#e9f3ea" "#d4dee7" "#f8f2e4"

#WSJ主題色

ggthemes_data$wsj$palettes #主題色

$rgby

yellow red blue green

"#d3ba68" "#d5695d" "#5d8ca8" "#65a479"

$red_green

green red

"#088158" "#ba2f2a"

$black_green

black gray ltgreen green

"#000000" "#595959" "#59a77f" "#008856"

$dem_rep

blue red gray

"#006a8e" "#b1283a" "#a8a6a7"

$colors6

red blue gold green orange black

"#c72e29" "#016392" "#be9c2e" "#098154" "#fb832d" "#000000"

#economist背景色:

ggthemes_data$economist$bg

#economist主題色:

ggthemes_data$economist$fg

也可以使用scales包中的show_col函數(shù)進行顏色的圖形化輸出:

顯示主題顏色:

《華爾街日報》

show_col(ggthemes_data$wsj$bg) #背景色

show_col(ggthemes_data$wsj$palettes$rgby) #rgby

show_col(ggthemes_data$wsj$palettes$red_green) #red_green

show_col(ggthemes_data$wsj$palettes$black_green) #black_green

show_col(ggthemes_data$wsj$palettes$dem_rep) #dem_rep

show_col(ggthemes_data$wsj$palettes$colors6) #colors6

《經(jīng)濟學人》

show_col(ggthemes_data$economist$bg) #背景色

show_col(ggthemes_data$economist$fg) #主題色

show_col(ggthemes_data$economist$stata) #基于stata的配色方案

以上ggthemes包中的所有顏色,你都可以通過names_pal()(n)的格式進行提取,然后使用文本函數(shù)進行抽取、轉(zhuǎn)化、合并,自由搭配出屬于自己的專屬配色方案

scales包的brewer_pal函數(shù):

接下來的時間我會將全部精力放在brewer_pal函數(shù)上,告訴你為什么,因為這個函數(shù)是scales專門為圖形標度所設(shè)置的顏色設(shè)置函數(shù),而以上我們所述的RColorBrewer里面的brewer.pal以及ggthemes包中的names_pal函數(shù),是用于提取自己的配色方案,適用范圍較小。

library("scales")

brewer_pal(type = "seq", palette = 1, direction = 1)

該函數(shù)直接對接RColorBrewer包中的配色主題,但是增加了一些輸出參數(shù),可以對輸出的主題進行更加靈活的自定義操作。

type設(shè)置顏色種類,palette設(shè)置色板(可以是字符名稱,也可以是編號),direction設(shè)置顏色輸出順序(默認為原始順序,-1代表倒序,對于連續(xù)漸變類型的色板比較重要)。

show_col(brewer_pal()(10))

show_col(brewer_pal("div")(5))

show_col(brewer_pal(palette = "Greens")(5))

可以看出來,brewer_pal()函數(shù)允許通過色板類型、色彩數(shù)據(jù)、主題類型進行篩選輸出。

我們可以通過brewer_pal函數(shù)將色彩信息傳遞給指定向量,或者直接將brewer_pal指定給col或者fill等圖表中的標度參數(shù)。

par(mfrow=c(1,2),mar=c(1,1,2,1),xaxs="i", yaxs="i")

pie(rep(1,times=6),labels="",col=brewer_pal(palette="Greens")(6),border=F,radius=1,clockwise=T)

pie(rep(1,times=6),labels="",col=brewer_pal(palette="Greens",direction =-1)(6),border=F,radius=1,clockwise=T)

因為ggplot中有專用于RColorBrewer的色彩主題函數(shù)scale_fill(colour)_brewer(),用于對接RColorBrewer中的色彩庫,所以我們想要在ggplot圖表系統(tǒng)中使用RColorBrewer中的配色主題,不必使用brewer_pal進行提取。

并且,brewer_pal函數(shù)內(nèi)的參數(shù),在scale_fill(colour)_brewer()函數(shù)內(nèi)也可以使用,對色彩方案進行篩選、抽取。

library(Rmisc)

library(lattice)

p1<- ggplot(data=mydata,aes(x=factor(1),y=c,fill=factor(c),order=desc(c)))+

geom_bar(stat="identity",width=1,col="white")+

coord_polar(theta = "y",start=0)+

theme(panel.grid = element_blank(),

panel.background = element_blank(),

axis.text = element_blank(),

axis.ticks = element_blank(),

axis.title = element_blank(),

legend.position="top")+

scale_fill_brewer(palette="Greens",labels=names(c))+

guides(fill=guide_legend(reverse=TRUE,title=NULL))

p2<- ggplot(data=mydata,aes(x=factor(1),y=c,fill=factor(c),order=desc(c)))+

geom_bar(stat="identity",width=1,col="white")+

coord_polar(theta = "y",start=0)+

theme(panel.grid = element_blank(),

panel.background = element_blank(),

axis.text = element_blank(),

axis.ticks = element_blank(),

axis.title = element_blank(),

legend.position="top")+

scale_fill_brewer(palette="Greens",direction =-1,labels=names(c))+

guides(fill=guide_legend(reverse=TRUE,title=NULL))

multiplot(p1,p2,cols=2)

除此之外,還有一個叫g(shù)gtech的包,專門為ggplot2包提供科技公司風格配色方案。仔細看了包,沒有取色函數(shù),但是提供了全部的色值信息。

library(ggtech)

tech_key = list(airbnb = c("#FF5A5F","#FFB400", "#007A87", "#FFAA91", "#7B0051"),

facebook = c("#3b5998","#6d84b4", "#afbdd4", "#d8dfea"),

google = c("#5380E4", "#E12A3C", "#FFBF03","#00B723"),

etsy = c("#F14000", "#67B6C3", "#F0DA47", "#EBEBE6", "#D0D0CB"),

twitter = c("#55ACEE", "#292f33", "#8899a6", "#e1e8ed"))

show_col(tech_key$airbnb)

show_col(tech_key$facebook)

show_col(tech_key$google)

show_col(tech_key$etsy)

show_col(tech_key$twitter)

以上是今天所要講的主要內(nèi)容,因為關(guān)于這塊兒的內(nèi)容,非常豐富,我也只能涉略一點兒,想要了解更多的R語言配色知識,可以參考詳細的官方文檔。

其實這一系列內(nèi)容還有一個姊妹篇(上篇《R預設(shè)配色系統(tǒng)及自定義色板》),推送在小魔方的個人公眾號——“數(shù)據(jù)小魔方”上,主要內(nèi)容是關(guān)于R語言預設(shè)的配色系統(tǒng)和目前可以調(diào)用的自定義顏色的調(diào)取與組合、轉(zhuǎn)換等信息。如果你想要了解詳情的話,可以去那里查看,閱讀原文可以直達。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
文獻配套GitHub發(fā)表級別繪圖03-條形圖
填坑-2017年的主題調(diào)整專題(基礎(chǔ)版):大匠致巧,隨R所圖
scRNA分析 | 定制 美化FeaturePlot 圖,你需要的都在這
R極簡教程
【R語言】熱圖繪制-heatmap+RColorBrewer配色方案
R繪圖基礎(chǔ)(四)熱圖 heatmap ← 糗世界
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服