These are used to compute and draw a function as a continuous curve.
For example - a standard normal curve can be drawn from the
dnorm() function -
> library(ggplot2)
> ggplot() +
+ xlim(-3, 3) +
+ stat_function(fun = dnorm, geom = "polygon", fill = "#44adb7", color = "#1a4145") +
+ theme_bw() + labs(title = "Standard Normal Curve")

To specify arguments of the function, use args -
> ggplot() +
+ xlim(25, 55) +
+ stat_function(fun = dnorm, args = list(mean = 40, sd = 3),
+ geom = "polygon", fill = "#44adb7", color = "#1a4145") +
+ theme_bw() + labs(title = "Normal Curve")

Adding multiple functions to the same plot -
> ggplot() +
+ xlim(25, 65) +
+ stat_function(fun = dnorm, args = list(mean = 40, sd = 3),
+ alpha = 0.5, aes(color = "Mean 40"),
+ geom = "polygon", fill = "#44adb7", color = "#1a4145") +
+ stat_function(fun = dnorm, args = list(mean = 50, sd = 3),
+ alpha = 0.5, aes(color = "Mean 50"),
+ geom = "polygon", fill = "#04fda4", color = "#1a4145") +
+ theme_bw() + labs(title = "Normal Curves")

Using geom_function() -
> ggplot() +
+ xlim (-4, 4) +
+ geom_function(fun = dnorm, aes(colour = "Normal")) +
+ geom_function(fun = dt, args = list(df = 7), aes(colour = "t, df = 7")) +
+ theme_bw() + labs(title = "Normal and t Distribution", color=NULL)

> ggplot() +
+ xlim(25, 65) +
+ geom_function(fun = dnorm, args = list(mean = 40, sd = 3),
+ aes(color = "Mean = 40")) +
+ geom_function(fun = dnorm, args = list(mean = 50, sd = 3),
+ aes(color = "Mean = 50")) +
+ theme_bw() + labs(title = "Normal Curves", color=NULL)

Overlay a function over a plot -
> ggplot(data.frame(x = rnorm(100)), aes(x)) +
+ geom_density() +
+ geom_function(fun = dnorm, colour = "red") +
+ xlim(-4, 4)

Using a custom function -
> sigmoid <- function(x){ 1/(1+exp(-x)) }
> ggplot() +
+ xlim(-10, 10) +
+ stat_function(fun = sigmoid) + # adding function
+ theme_bw() + labs(title = "Sigmoid Curve")

Another way to pass a custom function -
> ggplot() +
+ xlim(-10, 10) +
+ stat_function(fun = ~ 1/(1+exp(-.x)) ) + # Another way to specify the function
+ theme_bw() + labs(title = "Sigmoid Curve")

LS0tDQp0aXRsZTogIlVzaW5nIHN0YXRfZnVuY3Rpb24oKSBhbmQgZ2VvbV9mdW5jdGlvbigpIg0KYXV0aG9yOiAiTUQgQUhTQU5VTCBJU0xBTSINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiB0cnVlDQogICAgdG9jX2Zsb2F0OiB0cnVlDQogICAgdG9jX2RlcHRoOiA0DQogICAgdGhlbWU6IGNlcnVsZWFuDQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQ0KLS0tDQoNCmBgYHtyLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KICBjb21tZW50ID0gIiMjIiwgcHJvbXB0ID0gVFJVRSwgIHdhcm5pbmc9RkFMU0UNCikNCmBgYA0KDQotLS0NCg0KVGhlc2UgYXJlIHVzZWQgdG8gY29tcHV0ZSBhbmQgZHJhdyBhIGZ1bmN0aW9uIGFzIGEgY29udGludW91cyBjdXJ2ZS4gRm9yIGV4YW1wbGUgLSBhIHN0YW5kYXJkIG5vcm1hbCBjdXJ2ZSBjYW4gYmUgZHJhd24gZnJvbSB0aGUgYGRub3JtKClgIGZ1bmN0aW9uIC0gDQpgYGB7cn0NCmxpYnJhcnkoZ2dwbG90MikNCmdncGxvdCgpICsgDQogIHhsaW0oLTMsIDMpICsgDQogIHN0YXRfZnVuY3Rpb24oZnVuID0gZG5vcm0sIGdlb20gPSAicG9seWdvbiIsIGZpbGwgPSAiIzQ0YWRiNyIsIGNvbG9yID0gIiMxYTQxNDUiKSArIA0KICB0aGVtZV9idygpICsgbGFicyh0aXRsZSA9ICJTdGFuZGFyZCBOb3JtYWwgQ3VydmUiKQ0KYGBgDQoNClRvIHNwZWNpZnkgYXJndW1lbnRzIG9mIHRoZSBmdW5jdGlvbiwgdXNlIGBhcmdzYCAtIA0KYGBge3J9DQpnZ3Bsb3QoKSArIA0KICB4bGltKDI1LCA1NSkgKyANCiAgc3RhdF9mdW5jdGlvbihmdW4gPSBkbm9ybSwgYXJncyA9IGxpc3QobWVhbiA9IDQwLCBzZCA9IDMpLA0KICAgICAgICAgICAgICAgIGdlb20gPSAicG9seWdvbiIsIGZpbGwgPSAiIzQ0YWRiNyIsIGNvbG9yID0gIiMxYTQxNDUiKSArIA0KICB0aGVtZV9idygpICsgbGFicyh0aXRsZSA9ICJOb3JtYWwgQ3VydmUiKQ0KYGBgDQoNCkFkZGluZyBtdWx0aXBsZSBmdW5jdGlvbnMgdG8gdGhlIHNhbWUgcGxvdCAtDQpgYGB7cn0NCmdncGxvdCgpICsgDQogIHhsaW0oMjUsIDY1KSArIA0KICBzdGF0X2Z1bmN0aW9uKGZ1biA9IGRub3JtLCBhcmdzID0gbGlzdChtZWFuID0gNDAsIHNkID0gMyksIA0KICAgICAgICAgICAgICAgIGFscGhhID0gMC41LCBhZXMoY29sb3IgPSAiTWVhbiA0MCIpLA0KICAgICAgICAgICAgICAgIGdlb20gPSAicG9seWdvbiIsIGZpbGwgPSAiIzQ0YWRiNyIsIGNvbG9yID0gIiMxYTQxNDUiKSArIA0KICBzdGF0X2Z1bmN0aW9uKGZ1biA9IGRub3JtLCBhcmdzID0gbGlzdChtZWFuID0gNTAsIHNkID0gMyksIA0KICAgICAgICAgICAgICAgIGFscGhhID0gMC41LCBhZXMoY29sb3IgPSAiTWVhbiA1MCIpLA0KICAgICAgICAgICAgICAgIGdlb20gPSAicG9seWdvbiIsIGZpbGwgPSAiIzA0ZmRhNCIsIGNvbG9yID0gIiMxYTQxNDUiKSArIA0KICB0aGVtZV9idygpICsgbGFicyh0aXRsZSA9ICJOb3JtYWwgQ3VydmVzIikNCmBgYA0KDQpVc2luZyBnZW9tX2Z1bmN0aW9uKCkgLQ0KYGBge3J9DQpnZ3Bsb3QoKSArIA0KICB4bGltICgtNCwgNCkgKw0KICBnZW9tX2Z1bmN0aW9uKGZ1biA9IGRub3JtLCBhZXMoY29sb3VyID0gIk5vcm1hbCIpKSArDQogIGdlb21fZnVuY3Rpb24oZnVuID0gZHQsIGFyZ3MgPSBsaXN0KGRmID0gNyksIGFlcyhjb2xvdXIgPSAidCwgZGYgPSA3IikpICsNCiAgdGhlbWVfYncoKSArIGxhYnModGl0bGUgPSAiTm9ybWFsIGFuZCB0IERpc3RyaWJ1dGlvbiIsIGNvbG9yPU5VTEwpIA0KYGBgDQoNCmBgYHtyfQ0KZ2dwbG90KCkgKyANCiAgeGxpbSgyNSwgNjUpICsgDQogIGdlb21fZnVuY3Rpb24oZnVuID0gZG5vcm0sIGFyZ3MgPSBsaXN0KG1lYW4gPSA0MCwgc2QgPSAzKSwgDQogICAgICAgICAgICAgICAgYWVzKGNvbG9yID0gIk1lYW4gPSA0MCIpKSArIA0KICBnZW9tX2Z1bmN0aW9uKGZ1biA9IGRub3JtLCBhcmdzID0gbGlzdChtZWFuID0gNTAsIHNkID0gMyksIA0KICAgICAgICAgICAgICAgIGFlcyhjb2xvciA9ICJNZWFuID0gNTAiKSkgKyANCiAgdGhlbWVfYncoKSArIGxhYnModGl0bGUgPSAiTm9ybWFsIEN1cnZlcyIsIGNvbG9yPU5VTEwpIA0KYGBgDQoNCk92ZXJsYXkgYSBmdW5jdGlvbiBvdmVyIGEgcGxvdCAtDQpgYGB7cn0NCmdncGxvdChkYXRhLmZyYW1lKHggPSBybm9ybSgxMDApKSwgYWVzKHgpKSArDQogIGdlb21fZGVuc2l0eSgpICsNCiAgZ2VvbV9mdW5jdGlvbihmdW4gPSBkbm9ybSwgY29sb3VyID0gInJlZCIpICsNCiAgeGxpbSgtNCwgNCkNCmBgYA0KDQpVc2luZyBhIGN1c3RvbSBmdW5jdGlvbiAtDQpgYGB7cn0NCnNpZ21vaWQgPC0gZnVuY3Rpb24oeCl7IDEvKDErZXhwKC14KSkgfQ0KZ2dwbG90KCkgKyAgICAgICAgDQogIHhsaW0oLTEwLCAxMCkgKyANCiAgc3RhdF9mdW5jdGlvbihmdW4gPSBzaWdtb2lkKSArICAjIGFkZGluZyBmdW5jdGlvbg0KICB0aGVtZV9idygpICsgbGFicyh0aXRsZSA9ICJTaWdtb2lkIEN1cnZlIikNCmBgYA0KDQpBbm90aGVyIHdheSB0byBwYXNzIGEgY3VzdG9tIGZ1bmN0aW9uIC0gDQpgYGB7cn0NCmdncGxvdCgpICsgICAgICAgIA0KICB4bGltKC0xMCwgMTApICsgDQogIHN0YXRfZnVuY3Rpb24oZnVuID0gfiAxLygxK2V4cCgtLngpKSApICsgIyBBbm90aGVyIHdheSB0byBzcGVjaWZ5IHRoZSBmdW5jdGlvbg0KICB0aGVtZV9idygpICsgbGFicyh0aXRsZSA9ICJTaWdtb2lkIEN1cnZlIikNCmBgYA0K