#r #ggplot2 #label #legend
#r #ggplot2 #метка #легенда
Вопрос:
Я пытался изменить заголовок легенды с group на греческую букву «sigma» и метку «power.1, power.2, power.3» на «35, 40, 45», но он не появился и по-прежнему показывает имя и метку по умолчанию. Не могли бы вы, пожалуйста, помочь мне с этим? Большое спасибо.
# Load the library and input the data
library(ggplot2)
library(tidyr)
n <- 2:10
control <- rep(150, 4)
infected <- c(150, 170, 200, 250)
all <- c(control, infected)
sigma <- c(35, 40, 45)
# Compute the population mean
mu <- mean(all)
# Compute the sum of the tau squared
tau2 <- sum((all-mu)^2)
# Compute the gamma
gamma.1 <- (n*tau2)/(sigma[1]^2)
gamma.2 <- (n*tau2)/(sigma[2]^2)
gamma.3 <- (n*tau2)/(sigma[3]^2)
# Compute the power
power.1 <- 1-pf(qf(.95, 7, 16), 7, 16, gamma.1)
power.2 <- 1-pf(qf(.95, 7, 16), 7, 16, gamma.2)
power.3 <- 1-pf(qf(.95, 7, 16), 7, 16, gamma.3)
data <- data.frame(n, power.1, power.2, power.3)
data %>%
pivot_longer(cols = contains("power"), names_to = "group", values_to = "power") %>%
ggplot(aes(n, power))
geom_line(aes(color = group))
geom_point(aes(color = group), size = 4)
scale_fill_discrete(name = expression(sigma), labels = c("35","40","45"))
Ответ №1:
Попробуйте это в заключительной части вашего кода. Один урок, который вы можете усвоить, заключается в том, что заливка и цвет — это разные эстетические свойства. Итак, если вы задаете цвет, который вы должны использовать scale_color_manual
. Вот код:
#Code
data %>%
pivot_longer(cols = contains("power"), names_to = "group", values_to = "power") %>%
ggplot(aes(n, power))
geom_line(aes(color = group))
geom_point(aes(color = group), size = 4)
scale_color_discrete(name = expression(sigma), labels = c("35","40","45"))
Вывод:
Или вы также можете попробовать с guides()
, который выдаст тот же результат (но первый вариант более прямой):
#Code 2
data %>%
pivot_longer(cols = contains("power"), names_to = "group", values_to = "power") %>%
ggplot(aes(n, power))
geom_line(aes(color = group))
geom_point(aes(color = group), size = 4)
scale_color_discrete(labels = c("35","40","45"))
guides(color=guide_legend(title=expression(sigma)))
Комментарии:
1. Спасибо за вашу помощь и второй код. Действительно ценю это.
Ответ №2:
Вы должны использовать:
scale_colour_discrete(name = expression(sigma), labels = c("35","40","45"))