- 查看ggplot2 支持的色带
library(RColorBrewer)
display.brewer.all(type = "all")
display.brewer.all(type = "seq")
display.brewer.all(type = "div")
display.brewer.all(type = "qual")
brewer.pal.info # 共包括div qual seq三个类别
scale_fill_brewer(name="",type='div',palette=7)
color=brewer.pal(7, "Set1")[1]
- 翻转色带
# define a color rmap palette
colr = colorRampPalette(rev(brewer.pal(8,"RdYlBu"))) # reverse colorbar rev()
- 自定义色带和色带标签
scale_fill_brewer(name="Modeling year",type='qual',palette=7,direction=1)
- 连续型色带和离散化色带的区别
离散色带:
scale_fill_brewer(name="",type=‘div’,palette=7)
连续色带
scale_fill_gradientn(colors = rev(brewer.pal(10,“Spectral”)))
scale_fill_gradientn(colours = heat.colors(20),guide=“colourbar”)
scale_fill_gradient(low = “blue”, high = “red”,guide=“colourbar”)
scale_colour_gradient2()
### 连续型色带guide_colorbar
### 离散型色带guide_legend
### guides(fill = guide_legend(nrow = 1,title="")) # 图例一排 反转图例的顺序
7.2 颜色fill/color,灰度grey,色相hue, 色盲颜色
参数解释:
- type 在scale_color_continuous中表示指定变化类型,是普通渐变“gradient”还是色盲渐变“viridis”
在scale_xxx_distiller()中表示指定色板类型,是“seq”渐变,“qual”离散对比,还是“div”两极色板 - palette 表示指定色条类型,当type色板类型已经指定的情况下,可以用序号指定,若type未指定,则必须用色条名称指定
- direction 表示指定标度与变量的匹配方向,direction=-1表示方向翻转 在scale_xxx_hue()中,direction=1表示色轮的顺时针方向,direction=-1表示逆时针方向
- low, high表示渐变的颜色两极颜色名称或HEX色值,如果用颜色名称指定,则可用muted(“color”)指定某个暗色
- mid 表示指定渐变的中点颜色
- midpoint 表示指定渐变的中点对应的变量值
- colors/colours 多色渐变中,指定颜色向量, 如colour = terrain.colors(10)取10个地形图颜色作为渐变的基础色
- values 表示指定自定义颜色向量,如果变量为数字类型,则默认按数字大小顺序与values匹配,
如果变量为字符类型,则默认按变量字母顺序与values匹配,
为了按照想要的顺序匹配,可以给变量增加一个因子水平,然后自动按照因子水平与values匹配(自上而下,由低到高)
也可给values向量设置名称属性,名称与要映射的变量值一样,然后按照名称属性匹配 - range 表示指定指定显示的透明度范围,在[0, 1]区间内,0表示不透明,1表示不透明
- limits 表示设定显示范围
- breaks 表示设定图例刻度位置
- labels 表示指定图例刻度处显示标签
- h 表示指定色相范围,在区间[0, 360]内
- c 表示指定chroma(色度,鲜艳或是暗淡)值,最大值取决于hue和luminance
- l 表示指定luminance(亮度),在区间[0, 100]内
- start 表示指定灰度起点,从0到1,0表示白色,1表示黑色
- end 表示灰度结束点,通常end,默认end更黑,若设定start>end,则翻转标度
- end 表示灰度结束点,通常end,默认end更黑
- 其它公共参数:name图例名称,palette, breaks, labels, limits, expand, position(标签在图例的上)
- 只有连续的标度函数,如
scale_xxx_gradient^()才支持trans内置参数
7.2.1 color/fill
library(ggplot2)
# scale_fill_continuous
v <- ggplot(faithfuld, aes(waiting, eruptions, fill = density)) + geom_tile()
v
v + scale_fill_continuous(type = "gradient", name = "密度", breaks = c(0, 0.05,
0.01, 0.02, 0.03, 0.04), labels = c(0, 0.05,