将会用到以下两个示例数据集用于图像生成:
- # 双变量
- df <- read.table(header=TRUE, text='
- cond yval
- A 2
- B 2.5
- C 1.6
- ')
-
- # 三变量
- df2 <- read.table(header=TRUE, text='
- cond1 cond2 yval
- A I 2
- A J 2.5
- A K 1.6
- B I 2.2
- B J 2.4
- B K 1.2
- C I 1.7
- C J 2.3
- C K 1.9
- ')
在 ggplot2 中,对于线和点的颜色调整我们可以直接改变 colour 参数,如设置 colour="red" 或其他颜色的名字。而对于一些作为对象填充的颜色,如直方图中条形的颜色,则可以通过改变fill参数来控制,如 fill="red"。
如果你不想局限于使用一些经典的颜色,我们也可以通过制定色彩代码的方式来指定颜色,如 "#FF6699"。(下文中我们将会给出常见色彩代码的列表。)
- library(ggplot2)
- # 默认:深色条形
- ggplot(df, aes(x=cond, y=yval)) + geom_bar(stat="identity")
- # 红色外框线的条形
- ggplot(df, aes(x=cond, y=yval)) + geom_bar(stat="identity", colour="#FF9999")
- # 红色填充,黑色外框
- ggplot(df, aes(x=cond, y=yval)) + geom_bar(stat="identity", fill="#FF9999", colour="black")
-
-
- # 标准黑色的线与点
- ggplot(df, aes(x=cond, y=yval)) +
- geom_line(aes(group=1)) + # 组合所有的点,如果不这么做的话我们是看不到直线的
- geom_point(size=3)
- # 深蓝色的线,红色的点
- ggplot(df, aes(x=cond, y=yval)) +
- geom_line(aes(group=1), colour="#000099") + # 蓝线
- geom_point(size=3, colour="#CC0000") # 红点
2、将变量值映射为颜色
除了对颜色进行全局性的修改,我们也可以将变量值映射为颜色——也就是说我们用颜色来表示某个变量,这么做需要将它置于 aes() 命令之中。
- # 条形图:x轴及其填充都取决于变量cond2
- ggplot(df, aes(x=cond, y=yval, fill=cond)) + geom_bar(stat="identity")
-
- # 通过另一个数据集构建的条形图;填充色取决于cond2
- ggplot(df2, aes(x=cond1, y=yval)) +
- geom_bar(aes(fill=cond2), # 填充色取决于cond2
- stat="identity",
- colour="black", # 为所有元素添加黑色外框线
- position=position_dodge()) # 使同组条形紧密排列
-
- # 线与点;填充色取决于cond2
- ggplot(df2, aes(x=cond1, y=yval)) +
- geom_line(aes(colour=cond2, group=cond2)) + # colour和group都取决于cond2
- geom_point(aes(colour=cond2), # colour取决于cond2
- size=3) # 较大的数据点,不同的点形状
- ## 下列代码于上文绘制折线图的效果一致;将"colour=cond2"移至了全局映射aes()中
- # ggplot(df2, aes(x=cond1, y=yval, colour=cond2)) +
- # geom_line(aes(group=cond2)) +
- # geom_point(size=3)
3、色盲模式调色板
下图所示的便是色盲模式调色板,其中一个带有灰色,而另一个则含有黑色。
通过ggplot2,我们可以将调色板存储为一个变量,以方便之后的使用。
- # 含灰色的调色板
- cbPalette <- c("#999999", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7")
-
- # 含黑色的调色板
- cbbPalette <- c("#000000", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7")
-
- # 用于改变填充色时,我们需要加入
- scale_fill_manual(values=cbPalette)
-
- # 用于改变点线颜色时,我们需要加入
- scale_colour_manual(values=cbPalette)
- ggplot(df, aes(x=cond, y=yval, fill=cond)) + geom_bar(stat="identity") + scale_fill_manual(values=cbPalette)
以上内容转自 数析学院,原文后续还有 颜色选取、亮度和饱和度设置、自定义调色板、渐变色 等内容,感兴趣的同学可以先直接查看原文