Эквивалент кривой () для ggplot
Есть ли эквивалентный метод для построения функций с использованием ggplot
к curve()
Команда используется в базовой графике? Я полагаю, что альтернативой было бы просто создать вектор значений функции и построить связанную линию, но я надеялся на что-то более простое.
Спасибо!
2 ответа
Вы можете добавить кривую, используя 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/
Приведенный выше пример "data.frame" хорошо работает и создает линии сетки. Пример 'qplot' не работает в ggplot2 2.2.0 по указанным причинам.
Вы также можете использовать функцию "кривой" в ggplot2 2.2.0, но она не создает автоматически линии сетки или цвет фона. Например: кривая (cos(x), от = 0 до = pi/2).
Метод "ggplot(data.frame(...)" предоставляет полный впечатляющий диапазон параметров форматирования ggplot2. Мне это нравится.