ggplot2之颜色设置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ggplot2之颜色设置相关的知识,希望对你有一定的参考价值。
参考技术A https://www.sohu.com/a/348752646_785442https://www.jianshu.com/p/567e4a2c295a
①color:对点和线的颜色进行调整;当为柱状图或者空心散点时,color仅改变边框颜色。
eg:红色外框的条形图
>ggplot(df, aes(x=type, y=number)) + geom_bar(stat="identity", colour="#FF9999")
②fill:改变一些作为填充对象的颜色。
eg:黑色外框、红色填充的条形图
>ggplot(df, aes(x=type, y=number)) + geom_bar(stat="identity", fill="#FF9999", colour="black")
除了对颜色进行全局性的修改,也可以将变量值映射为颜色,就是用颜色来表示某个变量,需要将它置于aes 命令之中。同时在对图形属性进行映射之后,可使用标尺控制这些属性的显示方式, 其显示规律如下:
/ggplot2中提供了两种色标功能,用于使用rcolorbrewer调色板:
scale_fill_brewer()用于箱形图,条形图,小提琴图,点图等
scale_color_brewer()用于行和点
/ggplot2的scale系列函数一般使用三个单词,用_连接,如scale_fill_gradient和 scale_color_continuous等。
第一个单词都是scale;
第二个是color和fill等可更改的颜色参数,对应分组使用的颜色函数即可。比如柱状图,fill是柱子的填充颜色,这时就使用scale_fill系列函数来更改颜色。点图使用color分组,则使用scale_color_系列函数来更改颜色;
第三个单词的不同,可分为以下两种情况:
①离散型:在颜色变量是离散变量的时候使用,比如分类时每一类对应一种颜色。
1)manual :直接指定分组使用的颜色
#直接指定颜色
>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"))
#设置颜色透明度
>p + scale_fill_manual(values=alpha(c("#6495ED","#969696",0.5)))
2)hue :通过改变色相(hue)饱和度(chroma)亮度(luminosity)来调整颜色
3)brewer :使用ColorBrewer的颜色
/ brewer用于调用包ColorBrewer 中的配色方案,要想 了解所有的调色板 ,可以使用RColorBrewer::display.brewer.all查看。
/ 显示某个色盘的颜色
>display.brewer.pal(n, name)
函数参数的描述:
n:调色板中不同颜色的数量,最小值为3,最大值取决于调色板。
name:ColorBrewer列表中的调色板名称。 例如name = RdBu。
/想要 显示调色盘中某个色块的名称 :
>library(RColorBrewer)
>brewer.pal(n = 8, name = "Dark2")
[1] "#1B9E77" "#D95F02" "#7570B3" "#E7298A" "#66A61E" "#E6AB02" "#A6761D"## [8] "#666666"
/brewer的使用案例
>p + scale_fill_brewer(palette="Dark2") #填充箱型图、条形图、小提琴图、点图等
>p + scale_color_brewer(palette="Dark2") #用于点等
4)grey :使用不同程度的灰色
#通过start end 两个参数指定,0为黑,1为白,都在0-1范围内
eg:p + scale_fill_grey #使用不同程度的灰色
p + scale_fill_grey(start=1, end=0) #设定灰度范围
② 连续型: 颜色变量是连续变量的时候使用,比如0-100的数,数值越大颜色越深。
1)gradient 创建渐变色
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))
2) distiller 使用ColorBrewer的颜色
#将ColorBrewer的颜色应用到连续变量上
p + scale_color_distiller(palette = "Spectral")
p + scale_color_distiller(palette = "Greens")
3) identity 使用color变量对应的颜色,对离散型和连续型都有效
R语言与医学统计图形-11ggplot2几何对象之散点图
ggplot2绘图系统——几何对象之散点图
以geom开头的函数超过30个。几何对象和标度函数scale密不可分。只有在aes中传入某个变量,scale才能发挥作用。
所谓标度scale,就是图形遥控器,用于控制元素属性。相对于color/shape等参数而言,可以进行更多、更精确的设置。
颜色标度设置
颜色梯度(gradient)标度(scale)函数。
#双色梯度函数
scale_color_gradient(...,high='#56B1F7',low='#132B43',...)
scale_fill_gradient
#三色梯度函数
scale_color_gradient2(...,low=muted('red'),mid='white',high=muted('blue'),...)
scale_fill_gradient2
#自定义n色梯度函数,接受颜色向量
scale_color_gradientn(...,colors,...)
scale_color_gradientn
#手动设置颜色标度函数(对已有设置颜色不满意时)
scale_color_mauual(..,values)
scale_fill_mauual
示例。
df <- data.frame(x=runif(100),y=runif(100),
z1=rnorm(100),z2=abs(rnorm(100)))
#color后接连续型变量也可做到颜色梯度展示,但只是映射,没那么精细。
ggplot(df,aes(x,y))+geom_point(aes(color=z2))
ggplot(df,aes(x,y)) +geom_point(aes(color=z1))+
scale_color_gradient2() #默认的三色梯度
ggplot(df,aes(x,y)) +geom_point(aes(color=z1))+
scale_color_gradient(low='green',high = 'blue')
ggplot(df,aes(x,y)) +geom_point(aes(color=z1))+
scale_color_gradientn(colors = RColorBrewer::brewer.pal(5,'Set3'))
ggplot(mtcars,aes(mpg,wt))+geom_point(aes(color=factor(cyl)))+
scale_color_manual(values = c("red","blue","green"))
#注意传入的颜色向量长度必须和颜色映射变量因子水平一致
点的形状标度
标度函数中形状函数。
scale_shape(...,solid=TRUE)
#默认实心点
#自定义点型
scale_shape_manual(...,values)
示例。
ggplot(dsmall,aes(carat,price))+geom_point(aes(shape=cut))+
scale_shape_manual(name='diamonds',values = c(1:5))
#注意此处1:5和基础绘图包中的点形状代号是一样的
点的大小标度
点的大小标度函数有:
scale_radus(name,breaks,labels,limits,range,trans,guide)
scale_size(name,breaks,labels,limits,range,trans,guide)
scale_size_area(...,max_size)
scale_size_manual
示例。
ggplot(mpg,aes(displ,hwy,size=hwy))+
geom_point()+
scale_size(name = 'hwy size',breaks = c(12,24,44),
labels = c('low','middle','high'))
ggplot(mpg,aes(displ,hwy,size=hwy))+
geom_point()+
scale_radius() #将hwy大小传至圆点半径
df <- data.frame(x=c(0:10),y=c(20:30))
ggplot(df,aes(x=x,y=y,size=x))+
geom_point()+
scale_size_area()
以上是关于ggplot2之颜色设置的主要内容,如果未能解决你的问题,请参考以下文章