2016-09-24 4 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

감사합니다. –