在 ggradar 中更改轴标题文本颜色
Change axis title text color in ggradar
我希望雷达图周围的图块(例如 mpg
、cyl
、disp
等)为不同的颜色。有没有办法在 ggradar 中做到这一点?我曾尝试使用 theme()
参数来执行此操作,但似乎没有用。 ggradar
中有一个参数要更改字体而不是颜色。
mtcars %>%
add_rownames( var = "group" ) %>%
mutate_each(funs(rescale), -group) %>%
tail(4) %>% select(1:10) %>%
ggradar() +
theme(
axis.title = element_text(color = 'red')
)
查看 ggradar()
的文档和源代码后,恐怕没有设置“轴”文本颜色的选项。实际上,轴文本是通过多个 geom_text
层添加的,这就是 theme
选项不起作用的原因。
一个选项是通过首先识别“文本”层(有一堆(文本)层)然后手动设置文本颜色来操纵 ggplot
对象:
library(ggradar)
library(ggplot2)
library(dplyr)
p <- mtcars %>%
tibble::rownames_to_column(var = "group") %>%
mutate(across(-group, scales::rescale)) %>%
tail(4) %>%
select(1:10) %>%
ggradar()
# Text layers
is_text <- sapply(p$layers, function(x) inherits(x$geom, "GeomText") && any(x$data$text %in% names(mtcars)))
p$layers[is_text] <- lapply(p$layers[is_text], function(x) { x$aes_params$colour <- "red"; x})
p
ggradar 中的圆周轴标签不是“真正的”轴标签。它们被绘制为 geom_text
层,这就是为什么当应用不同的 theme
元素时它们不会改变的原因..
我没有看到直接更改它们的选项,但可以像这样为适当的图层美学提供颜色:
p <- mtcars %>%
rownames_to_column( var = "group" ) %>%
mutate(across(where(is.numeric), scales::rescale)) %>%
tail(4) %>%
select(1:10) %>%
ggradar()
p$layers[[1]]$aes_params <- c(p$layers[[1]]$aes_params, colour = "red")
p$layers[[5]]$aes_params <- c(p$layers[[5]]$aes_params, colour = "red")
p$layers[[6]]$aes_params <- c(p$layers[[6]]$aes_params, colour = "red")
p
我希望雷达图周围的图块(例如 mpg
、cyl
、disp
等)为不同的颜色。有没有办法在 ggradar 中做到这一点?我曾尝试使用 theme()
参数来执行此操作,但似乎没有用。 ggradar
中有一个参数要更改字体而不是颜色。
mtcars %>%
add_rownames( var = "group" ) %>%
mutate_each(funs(rescale), -group) %>%
tail(4) %>% select(1:10) %>%
ggradar() +
theme(
axis.title = element_text(color = 'red')
)
查看 ggradar()
的文档和源代码后,恐怕没有设置“轴”文本颜色的选项。实际上,轴文本是通过多个 geom_text
层添加的,这就是 theme
选项不起作用的原因。
一个选项是通过首先识别“文本”层(有一堆(文本)层)然后手动设置文本颜色来操纵 ggplot
对象:
library(ggradar)
library(ggplot2)
library(dplyr)
p <- mtcars %>%
tibble::rownames_to_column(var = "group") %>%
mutate(across(-group, scales::rescale)) %>%
tail(4) %>%
select(1:10) %>%
ggradar()
# Text layers
is_text <- sapply(p$layers, function(x) inherits(x$geom, "GeomText") && any(x$data$text %in% names(mtcars)))
p$layers[is_text] <- lapply(p$layers[is_text], function(x) { x$aes_params$colour <- "red"; x})
p
ggradar 中的圆周轴标签不是“真正的”轴标签。它们被绘制为 geom_text
层,这就是为什么当应用不同的 theme
元素时它们不会改变的原因..
我没有看到直接更改它们的选项,但可以像这样为适当的图层美学提供颜色:
p <- mtcars %>%
rownames_to_column( var = "group" ) %>%
mutate(across(where(is.numeric), scales::rescale)) %>%
tail(4) %>%
select(1:10) %>%
ggradar()
p$layers[[1]]$aes_params <- c(p$layers[[1]]$aes_params, colour = "red")
p$layers[[5]]$aes_params <- c(p$layers[[5]]$aes_params, colour = "red")
p$layers[[6]]$aes_params <- c(p$layers[[6]]$aes_params, colour = "red")
p