When using a loop to break a curve and select each line segment separately, you can try using the solid_capstyle argument for plot . Projecting is used by default, but you can try using "butt" and see if it helps.
plt.plot(x,y, alpha=0.1, c="k", solid_capstyle="butt")
This may slightly reduce the effect.
import matplotlib.pyplot as plt import numpy as np def squiggle_xy(a, b, c, d, i=np.arange(0.0, 2*np.pi, 0.05)): return np.sin(i*a)*np.cos(i*b), np.sin(i*c)*np.cos(i*d) x,y = squiggle_xy(2.5, 2, 1, 3) fig, ax = plt.subplots(ncols=2, figsize=(6,3)) ax[0].set_title("solid_capstyle=\"projecting\"") ax[1].set_title("solid_capstyle=\"butt\"") for i in range(len(x)-1): print x[i:i+2] ax[0].plot(x[i:i+2], y[i:i+2], alpha=0.1, lw=10, solid_capstyle="projecting", c="b") ax[1].plot(x[i:i+2], y[i:i+2], alpha=0.1, lw=10, solid_capstyle="butt", c="b") plt.show()

See this question for a good explanation of solid_capstyle .