簡體   English   中英

如何控制 x 軸刻度的數量?

[英]How do I control the number of x-axis ticks?

我已經提取了一個我想要使用的數據集,其中包含名為DateAdjusted的列。 調整后的只是基月調整后的百分比增長。

我目前擁有的代碼是:

x = data['Date']
y = data['Adjusted']

fig = plt.figure(dpi=128, figsize=(7,3))
plt.plot(x,y)

plt.title("FTSE 100 Growth", fontsize=25)
plt.xlabel("Date", fontsize=14)
plt.ylabel("Adjusted %", fontsize=14)
plt.show()

但是,當我運行它時,我基本上會在底部看到一條實心黑線,所有日期都相互覆蓋。 它試圖顯示每一個日期,而顯然我只想顯示主要日期。 該日期的格式為 4 月 19 日,數據從 10 月 3 日到 5 月 20 日。

如何將日期刻度和標簽的數量限制為每年一個,或我選擇的任何數量? 如果您確實有解決方案,如果您可以對代碼本身所做的編輯做出回應,那就太好了。 我已經嘗試過我在這里找到的其他解決方案,但我無法讓它工作。

matplotlibdates模塊將完成這項工作。 您可以通過修改MonthLocator來控制間隔(當前設置為 6 個月)。 就是這樣:

import pandas as pd
from datetime import date, datetime, timedelta
import matplotlib.pyplot as plt
import matplotlib.dates as md
import numpy as np
import matplotlib.ticker as ticker

x = data['Date']
y = data['Adjusted']
#converts differently formatted date to a datetime object
def convert_date(df):
    return datetime.strptime(df['Date'], '%b-%y')
data['Formatted_Date'] = data.apply(convert_date, axis=1)


# plot
fig, ax = plt.subplots(1, 1)
ax.plot(data['Formatted_Date'], y,'ok')

## Set time format and the interval of ticks (every 6 months)
xformatter = md.DateFormatter('%Y-%m') # format as year, month
xlocator = md.MonthLocator(interval = 6)

## Set xtick labels to appear every 6 months
ax.xaxis.set_major_locator(xlocator)

## Format xtick labels as YYYY:mm
plt.gcf().axes[0].xaxis.set_major_formatter(xformatter)
plt.title("FTSE 100 Growth", fontsize=25)
plt.xlabel("Date", fontsize=14)
plt.ylabel("Adjusted %", fontsize=14)
plt.show()

示例 output:

示例輸出

暫無
暫無

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

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