@Ingolifs' answer is exactly right. I'll just add to it some more plotting using the Python package Skyfield.
The "inner" plotted bodies (from outer to inner) are Mars, (Earth), Moon, Venus, Mercury, The Sun. The data is for 2000 days.
The "outer" plotted bodies are Uranus, Saturn, Jupiter, Earth, and The Sun. The data is for 2000 months.
Distances are in AU.
Click the plot to see larger, or just run the Python script and make your own plot.

class Body(object):
def __init__(self, name):
self.name = name
import numpy as np
import matplotlib.pyplot as plt
from skyfield.api import Topos, Loader, EarthSatellite
halfpi, pi, twopi = [f*np.pi for f in (0.5, 1, 2)]
degs, rads = 180/pi, pi/180
AU = 149597870.700 # km
load = Loader('~/Documents/fishing/SkyData') # avoids multiple copies of large files
data421 = load('de421.bsp')
data405 = load('de405.bsp')
data = data405 # need the longer time range for the outer planets
ts = load.timescale()
things = ('sun', 'mercury', 'venus', 'earth', 'moon', 'mars',
'jupiter barycenter', 'saturn barycenter', 'uranus barycenter', )
bodies = []
for thing in things:
name = thing.split()[0]
body = Body(name)
bodies.append(body)
body.obj = data[thing]
sun, mercury, venus, earth, moon, mars, jupiter , saturn, uranus = bodies
days_inner = np.arange(2000)
times_inner = ts.utc(2019, 1, days_inner)
months_outer = np.arange(2000)
times_outer = ts.utc(2019, months_outer, 1)
for body in bodies:
body.posn_barycentric_inner = body.obj.at(times_inner).position.km
body.posn_barycentric_outer = body.obj.at(times_outer).position.km
for body in bodies:
body.posn_geocentric_inner = body.posn_barycentric_inner - earth.posn_barycentric_inner
body.posn_geocentric_outer = body.posn_barycentric_outer - earth.posn_barycentric_outer
body.posn_heliocentric_inner = body.posn_barycentric_inner - sun.posn_barycentric_inner
body.posn_heliocentric_outer = body.posn_barycentric_outer - sun.posn_barycentric_outer
print (jupiter.posn_geocentric_inner.shape)
if True:
plt.figure()
lw, fs = 0.7, 12
plt.subplot(2, 2, 1)
plt.title('geocentric inner', fontsize=fs)
for body in (sun, mercury, venus, earth, moon, mars):
x, y, z = body.posn_geocentric_inner / AU
plt.plot(x, y, linewidth=lw)
plt.subplot(2, 2, 3)
plt.title('heliocentric inner', fontsize=fs)
for body in (sun, mercury, venus, earth, moon, mars):
x, y, z = body.posn_heliocentric_inner / AU
plt.plot(x, y, linewidth=lw)
plt.subplot(2, 2, 2)
plt.title('geocentric outer', fontsize=fs)
for body in (earth, mars, saturn, uranus):
x, y, z = body.posn_geocentric_outer / AU
plt.plot(x, y, linewidth=lw)
plt.subplot(2, 2, 4)
plt.title('heliocentric outer', fontsize=fs)
for body in (earth, mars, saturn, uranus):
x, y, z = body.posn_heliocentric_outer / AU
plt.plot(x, y, linewidth=lw)
plt.show()