A straight line is completely defined by 2 of its points. There's no need to generate 100 of them.
# Generates 2 regularly spaced numbers between -1 and 4, which we
# will use to plot our line
x = np.linspace(-1, 4, 2)
# This is our line's equation.
y = -W[0] / W[1] * x + (0.5 - b) / W[1]
# Plots our line (`"-r"` means "plot it as a red line")
plt.plot(x, y, "-r")
A straight line is completely defined by 2 of its points. There's no need to generate 100 of them.