[Python] How to draw dotted line in the graph with text written on it? [duplicate]

Discussão em 'Python' iniciado por Stack, Agosto 26, 2025.

  1. Stack

    Stack Membro Participativo

    I have plotted a graph using matplotlib. I want to make straight lines with text written on it parallel to y axis in the graph at certain places.Does anyone know how to do that? look at the images for more clarity :

    [​IMG]

    The image has the desired dotted lines that i want to plot. I want to draw lines just like in the image for the "leave decision", vertical lines parallel to y axis with leave decision written on it.

    e.g code :

    import matplotlib.pyplot as plt

    r=[70,70,70,70]
    e=[0,0,0,0]
    r_0=[70]
    r_1=[70]
    r_2=[70]
    r_3=[70]

    for i in range(5):
    r[0]=r[0]*0.9
    r_0.append(r[0])
    e[0]=e[0]+1



    if r[1]<=200 :
    r[1]=r[1]+4
    r_1.append(r[1])


    if r[2]<=200 :
    r_2.append(r[2])
    r[2]=r[2]+8


    if r[3]<=200 :
    r_3.append(r[3])
    r[3]=r[3]+16


    for i in range(5):
    r[1]=r[1]*0.9
    r_1.append(r[1])
    e[1]=e[1]+1



    if r[0]<=200 :
    r[0]=r[0]+2
    r_0.append(r[0])


    if r[2]<=200 :
    r[2]=r[2]+8
    r_2.append(r[2])



    if r[3]<=200 :
    r[3]=r[3]+16
    r_3.append(r[3])
    else:
    r_3.append(214)


    for i in range(5):
    r[2]=r[2]*0.9
    r_2.append(r[2])
    e[2]=e[2]+1



    if r[0]<=200 :
    r[0]=r[0]+2
    r_0.append(r[0])


    if r[1]<=200 :
    r[1]=r[1]+4
    r_1.append(r[1])


    if r[3]<=200 :
    r[3]=r[3]+16
    r_3.append(r[3])

    else:
    r_3.append(214)


    for i in range(5):
    r[3]=r[3]*0.9
    r_3.append(r[3])
    e[3]=e[3]+1


    if r[0]<=200 :
    r[0]=r[0]+2
    r_0.append(r[0])


    if r[2]<=200 :
    r[2]=r[2]+8
    r_2.append(r[2])


    if r[1]<=200 :
    r[1]=r[1]+4
    r_1.append(r[1])


    x=range(21)
    xb, r_0b = x[1:6], r_0[1:6]
    plt.plot(x,r_0,'--')
    plt.plot(xb, r_0b, 'tab:blue', marker='D')

    x=range(21)
    xb, r_1b = x[6:11], r_1[6:11]
    plt.plot(x,r_1,'--')
    plt.plot(xb, r_1b, 'tab:eek:range', marker='D')

    x=range(21)
    xb, r_2b = x[11:16], r_2[11:16]
    plt.plot(x,r_2,'--')
    plt.plot(xb, r_2b, 'tab:green', marker='D')

    x=range(21)
    xb, r_3b = x[16:21], r_3[16:21]
    plt.plot(x,r_3,'--')
    plt.ylim(0,250)
    plt.xlabel("Time")
    plt.ylabel("Reward")
    plt.title("Reward_Dynamics_B_3")
    plt.plot(xb, r_3b, 'tab:red', marker='D')


    My code output : [​IMG]

    Continue reading...

Compartilhe esta Página