Подтвердить что ты не робот

Эквивалент кривой() для ggplot

Существует ли эквивалентный метод для построения функций с использованием ggplot с командой curve(), используемой в базовой графике? Я предполагаю, что альтернативой было бы просто создать вектор значений функции и построить связанную линию, но я надеялся на что-то более простое.

Спасибо!

4b9b3361

Ответ 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. Мне нравится.