pandas - python adjust x-axis label frequency -


i have time series data 2000 2050. default plot x-labels 10 yr intervals, want change them 5 yr intervals. time series data in pandas dataframe. cannot find solution problem.

here data:

here code:

years = dates.yearlocator() yearsfmt = dates.dateformatter('%y')  datemin = 2000 datemax = 2050  a,b = 2010, 2050 d = {}  j in range(35,40):            d[j] = pd.read_csv('averages_swb_run' + str(j) + '.csv', skiprows=[0])     print      #convert data['year'] string datetime     pd.to_datetime(pd.series(d[j]['year']), format='%y')     #set data['year'] index , delete column     d[j].index = d[j]['year']     del d[j]['year']     d[j]      my_labels = ('base2000s','base forecast','climate forecast 1 (gfdl)','climate forecast 2 (mri)', 'landuse forecast 1', 'landuse forecast 2')     my_colors = ('black', 'black', 'red', 'green', 'cyan', 'goldenrod')     my_markers = ('o', 'o', '', '', '', '')     ax = d[j]['et'].plot(title='northern high plains aquifer: evapotranspiration',marker=my_markers[j-34], markersize=2, color=my_colors[j-34], label=my_labels[j-34], figsize=(8, 6))     #ax1 = d[j]['et'].plot(title='northern high plains aquifer: evapotranspiration', label='et, run'+ str(j))     ax.set_ylabel('average annual evaptranspiration, in inches per year')     ax.set_ylim(0,25)     lines = ax.get_lines()     #my_labels = ['base2000s','base','gfdl','mri', 'a2', 'b2']     ax.legend(lines, [line.get_label() line in lines], loc='best')     #shading     ax.axvspan(a,b, color = 'lightgray')     txtbox = 'gray shading represents future forecasts'     ax.text(0.5, 0.1, txtbox, ha='left', va='top',transform=ax.transaxes,   fontsize=10)      ax.xaxis.set_major_locator(years)     ax.xaxis.set_major_formatter(yearsfmt)     ax.set_xlim(datemin, datemax) figet = ax.get_figure() figet.savefig('et.jpg', dpi=300) 

ax.set_xticks([2000, 2005, 2010, 2015, 2020, 2025, 2030, 2035, 2040, 2045, 2050])


Comments