Matplotlib: Draw lines from x axis to points

前端 未结 2 1511
不知归路
不知归路 2021-02-13 22:26

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?

相关标签:
2条回答
  • 2021-02-13 22:58

    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: drawing vertical lines

    0 讨论(0)
  • 2021-02-13 23:06

    Use a stem plot

    The least cumbersome solution employs matplotlib.pyplot.stem

    import matplotlib.pyplot as plt
    x = [1. , 2., 3.5]
    y = [2.3, 4., 6.]
    plt.xlim(0,4)
    plt.stem(x,y)
    plt.show()
    

    0 讨论(0)
提交回复
热议问题