对于ggplot图,如何在单个轴内获得具有不同颜色的轴刻度标签?

use*_*028 12 r ggplot2

考虑一个简单的ggplot2图

library(ggplot2) 
dat <- data.frame(name=c("apple", "orange", "plum"),value=c(3,8,2),outlier=c(FALSE,TRUE,FALSE))
ggplot(dat)+geom_point(aes(x=value,y=name))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

有没有办法有条件地修改轴y标签(比如颜色)的样式属性,例如取决于outlierdat

结果就像是

在此输入图像描述

在具有大量项目的图形上,此功能将极大地提高图形可读性和影响力.

Dav*_*urg 21

一个更简单的方法(IMO)就是创建一个条件颜色向量并将其解析成 axis.text.y

dat <- data.frame(name=c("apple", "orange", "plum"),value=c(3,8,2),outlier=c(FALSE,TRUE,FALSE))
colvec <- character(dim(dat)[1])
colvec <- ifelse(dat$outlier, "red", "black")

library(ggplot2) 
ggplot(dat) +
geom_point(data = dat, aes(x=value,y=name)) +
theme(axis.text.y = element_text(colour=colvec))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述