2019-10-22浏览量:169

R语言学习ggplot2之颜色设置,你学会了吗?

ggplot2是由Hadley Wickham创建的一个十分强大的可视化R包。在使用R作图时,如何使用ggplot2来调整图像中的颜色呢?下面跟着我们一起学习ggplot2的颜色修改函数,制作出更加绚丽多彩的图片。

 

1、简单颜色分配

在ggplot2中,对于线和点的颜色调整可以直接改变colour参数,如设置colour=“red”等。而对于一些作为对象填充的颜色,如直方图中条形的颜色,则可以通过改变fill参数来控制,如fill=“red”。

#构建数据

df <- read.table(header=TRUE, data='type number

                 A 3

                 B 4.5

                 C 2.8')  

# 默认:深色条形

ggplot(df, aes(x=type, y=number)) + geom_bar(stat="identity")

# 红色外框线的条形

ggplot(df, aes(x=type, y=number)) + geom_bar(stat="identity", colour="#FF9999")

# 红色填充,黑色外框

ggplot(df, aes(x=type, y=number)) + geom_bar(stat="identity", fill="#FF9999", colour="black")

 

2、将变量值映射为颜色

除了对颜色进行全局性的修改,也可以将变量值映射为颜色,就是用颜色来表示某个变量,需要将它置于aes() 命令之中。同时在对图形属性进行映射之后,使用标尺控制这些属性的显示方式,其显示规律如下

 

ggplot2的scale系列函数一般使用三个单词用_连接,如scale_fill_gradient和 scale_color_continuous。

第一个都是scale。

第二个是colorfill等可更改的颜色参数,对应分组使用的颜色函数即可。比如柱状图,fill是柱子的填充颜色,这时就使用scale_fill系列函数来更改颜色。点图使用color分组,则使用scale_color_系列函数来更改颜色。

第三个单词的不同,可分为以下两种情况:

1)离散型:在颜色变量是离散变量的时候使用,比如分类时每一类对应一种颜色。

manual 直接指定分组使用的颜色

hue 通过改变色相(hue)饱和度(chroma)亮度(luminosity)来调整颜色

brewer 使用ColorBrewer的颜色

grey 使用不同程度的灰色

 

library(ggplot2)  ##载入ggplot2包

data(diamonds)  ##测试数据

diamond <- diamonds[sample(nrow(diamonds), 1000), ]  ##选取数据的前1000行

p <- ggplot(diamond, aes(cut, price, fill = cut)) + geom_boxplot()  ## 使用默认配色方案 scale_fill_hue()

 

#直接指定颜色

p + scale_fill_manual(values=c("red", "blue", "green", "yellow","orange"))

#或者直接指定对应分组颜色

p + scale_fill_manual(values=c("Fair" = "red", "Good" = "blue", "Very Good" = "green" , Premium = "orange", Ideal = "yellow"))

##效果如下,此时分组颜色对应我们设置的一样

 

brewer 使用ColorBrewer的颜色

##调用包ColorBrewer 中的配色方案,要想了解所有的调色板,可以使用RColorBrewer::display.brewer.all()查看。以下是调色板:

 

p + scale_fill_brewer(palette = "Set1")

##效果如下,选择Set1的配色方案

 

grey 使用不同程度的灰色

#通过start end 两个参数指定,0为黑,1为白,都在0-1范围内

p + scale_fill_grey()  #左图

#设定灰度范围

p + scale_fill_grey(start=1, end=0)  # 右图

 

2)连续型:颜色变量是连续变量的时候使用,比如0-100的数,数值越大颜色越深。

gradient 创建渐变色

distiller 使用ColorBrewer的颜色

identity 使用color变量对应的颜色,对离散型和连续型都有效

 

#构建数据集

df <- data.frame(

x = runif(100),

y = runif(100),

z1 = rnorm(100))

p <- ggplot(df, aes(x, y)) + geom_point(aes(colour = z1))

gradient 创建渐变色#参数设定节点颜色

p + scale_color_gradient(low = "white", high = "black")

#设置中间过渡色

p + scale_color_gradient2(low = "red", mid = "white", high = "blue")

#使用R预设调色板

p + scale_color_gradientn(colours =rainbow(10))

 

distiller 使用ColorBrewer的颜色

#将ColorBrewer的颜色应用到连续变量上

p + scale_color_distiller(palette = "Spectral")

p + scale_color_distiller(palette = "Greens")

 

总结:以上就是ggplot2绘图中颜色设置的各种参数及用法,帮助我们轻松绘制出色彩斑斓的图片。