2016-09-24 65 views
0

我已經使用下面的代碼生成了以下圖。我想將xtick標籤放在適當的位置。目前,這是誤導性的,第一個標籤12/06丟失。Matplotlib:對齊xtick標籤

enter image description here

的代碼如下:

import matplotlib.pyplot as plt 
import datetime as dt 
import matplotlib.dates as 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() for 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 from 12/06/2016 to 09/07/2016") 
plt.ylabel("Daily hits") 
plt.title("Count of daily visitors") 
plt.show() 

回答

1

可以通過明確地傳遞的列表,例如定製的x蜱的位置以紀念在列表中帶勾每次約會,你會做

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

,而不是

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

避免過度密集的刻度,你可以通過如date[::2]

+0

謝謝你的工作。 –