Matplotlib: draw lines with width given in data coordinates

后端 未结 2 2027
别跟我提以往
别跟我提以往 2021-02-09 04:36

I\'m trying to figure out how to draw lines with widths in data units. For example, in the following code snippet, I would want the horizontal part of the line of width 80 to al

2条回答
  •  醉酒成梦
    2021-02-09 04:47

    You could use fill_between:

    import matplotlib.pyplot as plt
    import numpy as np
    
    fig = plt.figure()
    ax = fig.add_subplot(1, 1, 1)
    ax.set_xlim(-50, 50)
    ax.set_ylim(-75, 75)
    x = [-50, 0, 50]
    y = np.array([-50, 0, 0])
    
    ax.fill_between(x,y-30,y+30)
    
    ax.grid()
    plt.show()
    

    yields

    enter image description here

    but unlike the line generated by

    ax.add_line(Line2D([-50, 0, 50], [-50, 0, 0], linewidth=80))
    

    the vertical thickness of the line will always be constant in data coordinates.

    See also link to documentation.

提交回复
热议问题