## Intro

Recently, I wondered whether there is a way to draw a fish shape using a mathematical function. Since I did not find a ready-made R function, I tried to write the function by myself. The equations, I've used for writing this function can be found on WolframMathWorld.

## The function

The `fish_curve()`

function requires the `ggplot2`

and the `dplyr`

package. It creates a data frame with two variables (x and y) and 10.000 observations. Finally, the data points are plotted using `ggplot2`

.

fish_curve <- function(colour='black', size = 5){ library(ggplot2) library(dplyr) data.frame( x = cos(1:10000) - sin(1:10000)^2 / sqrt(2), y = cos(1:10000) * sin(1:10000) ) %>% ggplot(., aes(x, y)) + geom_point(colour = colour, size = size) + theme_void() }

## Function call with default parameters

With `colour`

and `size`

the `fish_curve()`

function allows the user to specify two parameters; that is colour and size of the plotted points. The default values are *black* for `colour`

and *5* for `size`

.

(p1 <- fish_curve())

## Customization

In the following example, we customize colour and size of the fish shape:

(p2 <- fish_curve(colour = 'blue', size = 1))

And finally, we place the two plots side by side using the `patchwork`

package:

library(patchwork) p1 + p2