An analemma is a curve that shows off the apparent motion of a celestial object (usually the Sun) as seen from another celestial object (usually the Earth). The position of the moving object is captured at regular intervals, once per day or once per year, and if the motion is periodic, this will form a closed loop that will be the same from then on. You can read more about analemmas at the corresponding Wikipedia: Analemma page.

I wrote a program in python that can calculate the altitude and azimuth of various solar system objects at different times of day throughout the year. When the solar system object is above the horizon, that will be plotted as a yellow dot. When the solar system object is below the horizon, and not visible, that will be plotted as a blue dot.

Here is a picture of the path that the sun traces out in the sky, at the shown times, on the 1st, 11th, and 21st of each month in 2014.


If you could see it, here is the crazy path that mercury traces out every day of 2014, at 7am, noon, and 5pm.


Venus also traces out an unusual path through the sky throughout the year.


If you would like a copy, you can download the current version of analemma.py here (right-click, Save Link As). You will need python, wxpython, and pyephem to run this code.