2011-03-03 34 views
52

ggplot kullanarak temel grafiklerde kullanılan curve() komutunu kullanarak çizim grafiği için eşdeğer bir yöntem var mı? Bu alternatifin sadece fonksiyonun değerlerinin bir vektörünü oluşturmak ve bağlı bir çizgiyi çizmek olduğunu sanıyordum, ama biraz daha basit bir şey umuyordum.ggplot için eğri() eşdeğeri

Teşekkürler!

cevap

54

kullanarak bir eğri ekleyebilirsiniz stat_function:

ggplot(data.frame(x=c(0, 10)), aes(x)) + stat_function(fun=sin) 

O qplot kullanmak da mümkündür, ancak bu daha basit olup olmadığı açık değil:

sizin eğri fonksiyonudur
qplot(c(0,2), fun=sin, stat="function", geom="line") 

ise daha karmaşık, daha sonra bir lambda işlevi kullanın. Örneğin,

ggplot(data.frame(x=c(0, 10)), aes(x)) + 
    stat_function(fun=function(x) sin(x) + log(x)) 

Eğer http://kohske.wordpress.com/2010/12/25/draw-function-without-data-in-ggplot2/

+2

(c (0,2), eğlenceli = sin, istatistik = "function", geom = "line") ',' stat' 2016'da artık kullanılmıyor ve artık 'fun' artık kabul edilebilir bir parametre değil. – akhmed

1

diğer örnek bulabilirsiniz "data.frame" Yukarıdaki örnek iyi çalışır ve ızgara çizgileri yapar. 'Qplot' örneği verilen nedenlerden dolayı ggplot2 2.2.0'da çalışmaz.

Ayrıca ggplot2 2.2.0'daki "eğri" işlevini de kullanabilirsiniz, ancak otomatik olarak kılavuz çizgilerini veya arka plan rengini oluşturmaz. Örneğin: eğri (cos (x), = 0'dan, = pi/2'ye).

"ggplot (data.frame (...) yöntemi ggplot2 biçimlendirme seçeneklerinin tam etkileyici dizi verir. Hoşuma. Qplot` İçin