[Python] xtick labels not showing on python line plot

Discussão em 'Python' iniciado por Stack, Abril 5, 2025.

  1. Stack

    Stack Membro Participativo

    My python code of departures vs years, below works fine for a bar plot. I would like to have year tick mark labels on the x-axis. Currently I get the line plot, but no years labelled on the x-axis. For the bar plot the years are labelled alright. This is not a multi-plot (or subplots), but plotting the line plot while the bar plotting is commented, and vice versa. I am just curious why one works and the other doesn't.[​IMG] Any help will be appreciated.

    import pandas as pd
    import matplotlib.pyplot as plt
    import numpy as np

    df = pd.read_csv('../RnOut/RAINFALL/Deps/CHIPAT.txt', sep=' ', skipinitialspace=True )

    fig, ax = plt.subplots(figsize=(10, 10))

    #Drop rows with missing values
    #*****************************
    df_new = df.drop(df[df['Dep'] <= -99.].index)

    #set xtick labels
    #****************
    xticks=np.arange(df_new['Year'].iloc[0], df_new['Year'].iloc[-1], 5)
    xlabels = [f'{x:d}' for x in xticks]
    ax.set_xticks(xticks, labels=xlabels)
    plt.xticks(xticks, labels=xlabels)

    #Draw line plot
    #**************
    #df_new['Dep'].plot(ax=ax)

    #Draw bar plot, red for negative bars
    #************************************
    colors = ['g' if e >= 0 else 'r' for e in df_new['Dep']]
    plt.bar(df_new['Year'],df_new['Dep'], color=colors,edgecolor='black')

    #Set titles
    #**********
    ax.set_title('Rainfall Departures: Oct-Mar\n ---------------------------------------')
    plt.xlabel("Years")
    plt.ylabel("Rainfall Departure (Std Dev)")

    ax.grid()
    plt.savefig('ChipatDep.png')
    plt.show()


    my sample data

    Year Dep
    1945 -0.9
    1946 0.9
    1947 0.6
    1948 -0.7
    1949 1.2
    1950 -0.9
    1951 0.9
    1952 0.1
    1953 -1.0
    1954 1.3
    1955 -0.3

    Continue reading...

Compartilhe esta Página