Graddy - 2 years ago 265

Python Question

I have a bunch of points that I am trying to plot using matplotlib. For each point (a,b) I want to draw the line X = a for Y in [0,b]. Any idea how to do this?

Recommended for you: Get network issues from **WhatsUp Gold**. **Not end users.**

Answer Source

You just draw each line using the two endpoints. A vertical line X=a for Y in [0,b] has endpoints (x,y) = (a,0) and (a,b). So:

```
# make up some sample (a,b): format might be different to yours but you get the point.
import matplotlib.pyplot as plt
points = [ (1.,2.3), (2.,4.), (3.5,6.) ] # (a1,b1), (a2,b2), ...
plt.hold(True)
plt.xlim(0,4) # set up the plot limits
for pt in points:
# plot (x,y) pairs.
# vertical line: 2 x,y pairs: (a,0) and (a,b)
plt.plot( [pt[0],pt[0]], [0,pt[1]] )
plt.show()
```

Gives something like the following:

Recommended from our users: **Dynamic Network Monitoring from WhatsUp Gold from IPSwitch**. ** Free Download**