Вот некоторые фиктивные данные:уровня фактора/цвет присутствует в данных, но отсутствует сюжет, используя scale_color_manual
dummy <- c(rep("castor", 20), rep("dandelion", 20), rep("goose", 20), rep("teapot", 20), rep("bee", 20), rep("fan" , 20))
groups <- c(rep(c(rep(1, 10), rep(2, 10)), 6))
mydata <- data.frame(a = rnorm(120, 0, 1), b = rnorm(120, 0, 1), dummy = dummy, groups = groups)
Вот функция, я написал для построения уровня моего выбора из фиктивного столбца в синем цвете. Я хочу, чтобы оставшиеся уровни были выделены серым цветом. Те оставшиеся уровни факторов (давайте назовем их ссылкой) теперь жестко закодированы, что не является проблемой, потому что в моих реальных данных у меня есть больше уровней моего выбора (назовем их тестом) для построения, поэтому я пишу функцию для этого.
custom_plot <- function(level){
df <- subset(mydata, mydata$dummy == level | mydata$groups == "1")
# Check that the test level is indeed in the subset df
return(table(df$dummy, df$groups))
p <- ggplot(df, aes(x = a, y = b, color = dummy, shape = dummy)) + geom_point() + theme_bw()
p <- p + scale_color_manual(values = c(level = "blue", "castor" = "gray", "dandelion" = "gray", "fan" = "gray", "goose" = "gray", "teapot" = "gray"))
p
}
custom_plot("bee")
Я не могу отправить изображение, потому что мне нужен по крайней мере, 10 репутация, но по существу график я получаю имеет тестовый уровень в легенде, но фактические точки данных отсутствует из графика, и форма/цвет этого уровня пуст. Я попытался использовать аргументы breaks, limits и labels, но ничего не получилось.
Благодарим за помощь!
Удивительный, это сработало, спасибо! Он не определяет уровни факторов в аргументе значений, но он заказывает цвета в первую очередь, так что это не обязательно. – ahj