In MATLAB
/octave
plotting stuff in polar coordinates is really easy, e.g. the cardioid
ezpolar('1+cos(t)',[0,2*pi])
In ggplot, more verbose is needed
qplot(c(0, 2*pi), geom="blank") + # Specify range in a blank geom
stat_function(fun=function(t) 1 + cos(t), geom="line") + # Specify the function
coord_polar(direction=-1, start=3*pi/2) + # Counterclockwise (-1), and specify what 6 o'clock should be in radians
scale_x_continuous(breaks=seq(0, 2*pi, by=pi/6), labels=seq(0, 360, by=30)) # Place breaks every pi/6 (30 deg), use labels in degrees
and, to be honest, MATLAB's output still looks prettier.