I am trying to use matplotlib to draw a plot for a discrete function with connecting lines between those discrete lines, but the generated plot is very strange. Though I have already set all discrete lines (blue ones) to have equal length, they still seems different in the plot. Furthermore, there are blank spaces between connecting lines and discrete lines even though I set that they should intersect at the same point.

import numpy as np
from matplotlib import pyplot as plt
x=np.linspace(0,17)
plt.ylim(-5,2)
plt.plot(x[x < 1.0], 0.0 + x[x < 1.0]*0, color='blue', linewidth=3.0)
plt.plot(x[(x > 2.0) & (x < 3.0)], 1.31 + x[(x>2.0) & (x<3.0)]*0, color='blue', linewidth=3.0)
plt.plot(x[(x > 4.0) & (x < 5.0)], 0.16 + x[(x>4.0) & (x<5.0)]*0, color='blue', linewidth=3.0)
plt.plot(x[(x > 6.0) & (x < 7.0)], -1.94 + x[(x>6.0) & (x<7.0)]*0, color='blue', linewidth=3.0)
plt.plot(x[(x > 8.0) & (x < 9.0)], -3.77 + x[(x>8.0) & (x<9.0)]*0, color='blue', linewidth=3.0)
plt.plot(x[(x > 10.0) & (x < 11.0)], -3.82 + x[(x>10.0) & (x<11.0)]*0, color='blue', linewidth=3.0)
plt.plot(x[(x > 12.0) & (x < 13.0)], -2.75 + x[(x>12.0) & (x<13.0)]*0, color='blue', linewidth=3.0)
plt.plot(x[(x > 14.0) & (x < 15.0)], -1.64 + x[(x>14.0) & (x<15.0)]*0, color='blue', linewidth=3.0)
plt.plot([1,2],[0.0,1.31], color='black')
plt.plot([3,4],[1.31,0.16], color='black')
plt.plot([5,6],[0.16,-1.94], color='black')
plt.plot([7,8],[-1.94,-3.77], color='black')
plt.plot([9,10],[-3.77,-3.82], color='black')
plt.plot([11,12],[-3.82,-2.75], color='black')
plt.plot([13,14],[-2.75,-1.64], color='black')
plt.show()