python - Matplotlib: align xtick labels -


i have generated following plot using code below. position xtick labels @ appropriate place. currently, misleading , first label 12/06 missing.

enter image description here

the code follows:

import matplotlib.pyplot plt import datetime dt import matplotlib.dates mdates  list_date =  ['2016-06-12',  '2016-06-13',  '2016-06-14',  '2016-06-15',  '2016-06-16',  '2016-06-17',  '2016-06-18',  '2016-06-19',  '2016-06-20',  '2016-06-21',  '2016-06-22',  '2016-06-23',  '2016-06-24',  '2016-06-25',  '2016-06-26',  '2016-06-27',  '2016-06-28',  '2016-06-29',  '2016-06-30',  '2016-07-01',  '2016-07-02',  '2016-07-03',  '2016-07-04',  '2016-07-05',  '2016-07-06',  '2016-07-07',  '2016-07-08',  '2016-07-09']  list_count =  [9490,  595442,  566104,  664133,  655221,  612509,  607395,  597703,  613051,  635764,  705905,  535869,  583516,  630818,  641495,  697591,  578071,  547280,  561775,  581784,  594175,  552944,  545131,  493400,  604280,  510182,  518883,  413648]  date = [dt.datetime.strptime(d,'%y-%m-%d').date() d in list_date]  plt.gca().xaxis.set_major_formatter(mdates.dateformatter('%d/%m')) plt.gca().xaxis.set_major_locator(mdates.daylocator(interval=2)) plt.bar(date, list_count, align = 'center') plt.gcf().autofmt_xdate() plt.grid() plt.xlabel("period  12/06/2016 09/07/2016") plt.ylabel("daily hits") plt.title("count of daily visitors") plt.show() 

you can customize position of x-ticks explicitly passing list, e.g. mark every date in list tick, do

plt.gca().xaxis.set_ticks(date) 

instead of

plt.gca().xaxis.set_major_locator(mdates.daylocator(interval=2)) 

to avoid over-dense ticks, pass e.g. date[::2].


Comments

Popular posts from this blog

unity3d - Rotate an object to face an opposite direction -

delphi - Disable and change color of node in Treeview -

elasticsearch python client - work with many nodes - how to work with sniffer -