#r #ggplot2
#r #ggplot2
Вопрос:
Я пытаюсь воспроизвести следующий график. Z — это функция от X и Y. На графике показаны 3 точки данных (белые точки), а также контурные линии, показывающие все возможные значения для z для любой комбинации x и y.
Вот что у меня есть на данный момент:
funct <- function(x,y) sqrt((1-x)^2 (1-y)^2)
df <- data.frame(x = c(0.3, 0.6, 0.8),
y = c(0.7, 0.4, 0.9),
z = funct(x,y))
grid <- expand.grid(x = seq(0,1,0.01), y = seq(0,1,0.01))
ggplot(grid, aes(x, y, z = funct(x,y)))
geom_contour()
Итак, мне удалось нарисовать сетку с контурными линиями, но мне все еще не хватает:
- Как добавить 3 точки данных в эту сетку
- Как раскрасить контурные линии и добавить легенду
Было бы здорово, если бы кто-нибудь указал мне правильное направление!
Спасибо, Лена
Ответ №1:
Вы могли бы попробовать:
ggplot(grid, aes(x, y, z = funct(x,y)))
geom_contour_filled(color = "black")
scale_fill_manual(values = c("#000000", "#5F0000", "#BF0000", "#FF1F00",
"#FF7F00", "#FFDF00", "#FFFF3F", "#FFFF9F"))
geom_point(data = df, shape = 21, size = 3, fill = "white",
color = "dodgerblue")
Комментарии:
1. Удивительный Адам, большое тебе спасибо! Я еще не сталкивался с функцией «geom_contour_filled», несмотря на довольно продолжительный поиск.