Эквивалент кривой () для ggplot - PullRequest
64 голосов
/ 03 марта 2011

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

Спасибо!

Ответы [ 2 ]

73 голосов
/ 03 марта 2011

Вы можете добавить кривую, используя 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 голосов
/ 20 ноября 2016

Приведенный выше пример data.frame хорошо работает и создает линии сетки.Пример qplot не работает в ggplot2 2.2.0 по указанным причинам.

Вы также можете использовать функцию "кривой" в ggplot2 2.2.0, но она не создает автоматически линии сетки или цвет фона.Например:

curve(cos(x), from= 0, to= pi/2).  

Метод "ggplot (data.frame (...)" предоставляет полный впечатляющий диапазон параметров форматирования ggplot2. Мне нравится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...