我正在使用 geom_label_repel(),我正在尝试将标签的文本颜色更改为白色,但将线条保持为黑色。当我尝试将颜色命令放在 aes() 之外时,它会使行和文本变白:
在 aes() 之外使用颜色参数
library(dplyr)
library(ggplot2)
library(ggrepel)
data <- tibble(name = c("Justin", "Corey", "Sibley", "Kate"),
n = c(10, 30, 59, 1),
prop = c(10, 30, 59, 1)) %>%
dplyr::arrange(desc(name)) %>%
dplyr::mutate(text_y = cumsum(prop)-prop/2)
my_colors <- c("#00A3AD", "#FF8200", "#753BBD", "#6CC24A")
ggplot(data, aes(x = 2, y = prop, fill = name)) +
geom_bar(stat = "identity", color = "white") +
coord_polar(theta = "y", start = 0)+
geom_label_repel(aes(y = text_y, label = paste0(n, "\n", prop, "%")), force_pull = 100, nudge_x = 1, color = "white") +
scale_fill_manual(values = my_colors) +
theme_void() +
xlim(.5, 2.5)
但是,如果我把它放在 aes() 中,它就全是……橙色?
在 aes() 中带有颜色参数
library(dplyr)
library(ggplot2)
library(ggrepel)
data <- tibble(name = c("Justin", "Corey", "Sibley", "Kate"),
n = c(10, 30, 59, 1),
prop = c(10, 30, 59, 1)) %>%
dplyr::arrange(desc(name)) %>%
dplyr::mutate(text_y = cumsum(prop)-prop/2)
my_colors <- c("#00A3AD", "#FF8200", "#753BBD", "#6CC24A")
ggplot(data, aes(x = 2, y = prop, fill = name)) +
geom_bar(stat = "identity", color = "white") +
coord_polar(theta = "y", start = 0)+
geom_label_repel(aes(y = text_y, label = paste0(n, "\n", prop, "%"), color = "white"), force_pull = 100, nudge_x = 1) +
scale_fill_manual(values = my_colors) +
theme_void() +
xlim(.5, 2.5)
我想要白色文字,黑色线条,并且没有第二个中出现的“白色”图例。 (此外,在第二个中,它使橙色标签中的文本完全消失,这是不可取的)。最佳答案
弄清楚了!还有一个说法-- segement.color
--设置线条(段)颜色。两者 color
和 segment.color
应设置在 geom_label_repel()
内功能但在其之外 aes()
功能:
library(dplyr)
library(ggplot2)
library(ggrepel)
my_colors <- c("#00A3AD", "#FF8200", "#753BBD", "#6CC24A")
data <- tibble(name = c("Justin", "Corey", "Sibley", "Kate"),
n = c(10, 30, 59, 1),
prop = c(10, 30, 59, 1)) %>%
dplyr::arrange(desc(name)) %>%
dplyr::mutate(text_y = cumsum(prop)-prop/2)
ggplot(data, aes(x = 2, y = prop, fill = name)) +
geom_bar(stat = "identity", color = "white") +
coord_polar(theta = "y", start = 0)+
geom_label_repel(aes(y = text_y, label = paste0(n, "\n", prop, "%")), force_pull = 100, nudge_x = 1,
color="white", segment.color="black") +
scale_fill_manual(values = my_colors) +
theme_void() +
xlim(.5, 2.5)
关于r - 如何仅在 geom_label_repel() 中更改文本颜色而不是线条颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68036507/