When I draw a line segment in matplotlib the linewidth seems to be added to the length of the line. Below my code (not the most pythonic code, but it should do the trick). Am I doing something wrong or is this just a feature of matplotlib?
import matplotlib.pyplot as plt
import numpy as np
L1 = 100
L2 = 75
L3 = 100
Y = 3
N = 5
l_prev = 0
for l, c in zip(np.linspace(0, L1, N), range(N)):
plt.plot([l_prev, l], [0, 0], 'r', linewidth=20)
l_prev = l
l_prev = L1
for l, c in zip(np.linspace(L1, L1 + L2, N), range(N)):
plt.plot([l_prev, l], [Y, Y], 'g', linewidth=1)
l_prev = l
l_prev = L1
for l, c in zip(np.linspace(L1, L1 + L3, N), range(N)):
p = plt.plot([l_prev, l], [-Y, -Y], 'b', linewidth=10)
l_prev = l
plt.axvspan(xmin=L1, xmax=L1)
plt.axis([-5, 205, -5, 5])
plt.show()
What I expected to see is three line segments: [0,L1], [L1,L2] and [L1,L3]
. But the first line [0,L1]
extends to L1
+ 'the diameter'....