2011-03-03 77 views
52

是否有一個等價的方法用於在基礎圖形中使用curve()命令使用ggplot來繪製函數?我猜想替代方法是創建一個函數值向量並繪製一條連接線,但我希望更簡單一些。等價於ggplot的曲線()

謝謝!

回答

54

可以使用添加曲線stat_function

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

也可以使用qplot,但如果這是simplier目前尚不清楚:

qplot(c(0,2), fun=sin, stat="function", geom="line") 

如果你的曲線功能更復雜,然後使用lambda函數。例如,

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

對於'qplot(C(0,2),有趣=罪,統計=「function」,geom =「line」)','stat'現在在2016年不推薦使用,'fun'不再是可接受的參數。 – akhmed 2016-03-21 02:38:57

1

找到其他示例的上述「data.frame」示例效果很好,它使網格線。出於原因,'qplot'示例在ggplot2 2.2.0中不起作用。

您也可以使用ggplot2 2.2.0中的「曲線」功能,但不會自動生成網格線或背景色。例如:曲線(cos(x),從= 0到= pi/2)。

的「ggplot(data.frame(...)方法給予充分一系列令人印象深刻的GGPLOT2的格式選項。我喜歡它。