我有一个基本的条形图,我是从ggplot2创建的。 y变量包含正值和负值,大约一半的矢量值为负值。我想自定义轴标签,以便当相应的x因子的y值为负时,其标签为红色。这是一个可重复的例子:
#Create data
x <- c("a","b","c","d","e","f")
y <- c("10", "9","-10","11","-3","-15")
data <- data.frame(x, y)
data$y <- as.numeric(as.character(data$y))
data$category <- ifelse(as.numeric(data$y)<0, 0, 1)
data$category <- as.factor(data$category)
#Graph
library(cowplot) #theme
library(ggplot2)
ggplot(data, aes(x=x, y=y)) +
geom_bar(stat = "identity", aes(fill=category)) +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
theme(axis.text.x = element_text(colour = "black"))
我需要的是一种将“c”,“e”和“f”的标签颜色更改为我选择的颜色的方法。我尝试切换theme(aes(axis.text.x=element_text(colour=Air_pricier)))
,但这会产生错误。提前谢谢。
答案 0 :(得分:40)
答案 1 :(得分:2)
我也收到@Mark Neal的评论中提到的警告消息;这让我很紧张。这是ggtext
包的替代方法。您可以在<span>
s中包装x轴的类别,并指定所需的颜色,然后在主题中使用element_markdown
:
library(ggtext)
library(tidyverse)
data %>%
mutate(x.label = paste("<span style = 'color: ",
ifelse(y > 0, "black", "red"),
";'>",
x,
"</span>", sep = ""),
x.label = fct_reorder(x.label, as.character(x))) %>%
ggplot(aes(x=x.label, y=y)) +
geom_bar(stat = "identity", aes(fill=category)) +
theme(axis.text.x = element_markdown(angle = 45, hjust = 1))
https://create-react-app.dev/docs/making-a-progressive-web-app/