Change tick frequency on X (time, not number) frequency in matplotlib

前端 未结 1 1128
孤城傲影
孤城傲影 2020-11-30 06:09

My python plot data only show 2 points on x axis.

I would like to have more, but don\'t know how.

x = [ datetime.datetime(1900,1,1,0,1,2         


        
相关标签:
1条回答
  • 2020-11-30 06:39

    Whatever reason it is you are getting 2 ticks only by default, you can fix it (customise it) by changing the ticker locator using a date locator.

    import matplotlib.pyplot as plt
    import matplotlib.dates as mdates
    
    x = [ datetime.datetime(1900,1,1,0,1,2),
          datetime.datetime(1900,1,1,0,1,3),
          ...
          ]                                            # ( more than 1000 elements )
    y = [ 34, 33, 23, ............ ]
    
    fig = plt.figure()
    ax = fig.add_subplot(1,1,1)  
    plt.plot( x, y )
    
    ax.xaxis.set_major_locator(mdates.MinuteLocator(interval=15))   #to get a tick every 15 minutes
    ax.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M'))     #optional formatting 
    

    You have several locators (for example: DayLocator, WeekdayLocator, MonthLocator, etc.) read about it in the documentation:

    http://matplotlib.org/api/dates_api.html

    But maybe this example will help more:

    http://matplotlib.org/examples/api/date_demo.html

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