我希望雷達圖周圍的圖塊(例如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')
)
uj5u.com熱心網友回復:
在查看檔案和源代碼后,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

uj5u.com熱心網友回復:
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

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/474416.html
