簡體   English   中英

Matplotlib:對齊xtick標簽

[英]Matplotlib: align xtick labels

我使用下面的代碼生成了以下圖。 我想將xtick標簽放置在適當的位置。 當前,它具有誤導性,並且缺少第一個標簽12/06

在此處輸入圖片說明

代碼如下:

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()

您可以通過顯式傳遞列表來自定義x標記的位置,例如,用勾號標記列表中的每個日期,您可以

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

代替

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

為了避免過高的滴答聲,您可以傳遞例如date[::2]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM