Эквивалент кривой() для ggplot
Существует ли эквивалентный метод для построения функций с использованием ggplot
с командой curve()
, используемой в базовой графике? Я предполагаю, что альтернативой было бы просто создать вектор значений функции и построить связанную линию, но я надеялся на что-то более простое.
Спасибо!
Ответы
Ответ 1
Вы можете добавить кривую с помощью stat_function
:
ggplot(data.frame(x=c(0, 10)), aes(x)) + stat_function(fun=sin)
Можно также использовать qplot
, но это неясно, если это проще:
qplot(c(0,2), fun=sin, stat="function", geom="line")
Если ваша функция кривой сложнее, используйте функцию лямбда. Например,
ggplot(data.frame(x=c(0, 10)), aes(x)) +
stat_function(fun=function(x) sin(x) + log(x))
вы можете найти другие примеры в
http://kohske.wordpress.com/2010/12/25/draw-function-without-data-in-ggplot2/
Ответ 2
Пример "data.frame" выше работает хорошо, и он создает линии сетки. Пример "qplot" не работает в ggplot2 2.2.0 по указанным причинам.
Вы также можете использовать функцию "кривая" в ggplot2 2.2.0, но она не делает автоматически линии сетки или цвет фона. Например: кривая (cos (x), от = 0, до = pi/2).
Метод ggplot (data.frame(...) дает полный впечатляющий диапазон параметров форматирования ggplot2. Мне нравится.