Почему у меня перед всеми ярлыками xtick указывается один и тот же номер? (Матплотлиб, Python3) - PullRequest
0 голосов
/ 08 мая 2020

Почему у меня остается один и тот же номер перед (8) перед каждым номером тика, когда его нет в столбце (time), который я использую для построения моего пробела? Вот мой код (часть более крупного скрипта):

def animate(i):
    if chartLoad:
        from datetime import date
        f_real_time = plt.figure(1)
        a = plt.subplot2grid((6,4), (0,0), rowspan = 5, colspan = 4)
        v = plt.subplot2grid((6,4), (5,0), rowspan = 1, colspan = 4,sharex=a)

        df = pd.read_csv(f'C:\\Data\\{data}.csv')
        df['time'] = df['time'].astype('datetime64[ns]')
        dateStamps = df['time']
        volume = df["Volume"]

        a.clear()
        v.clear()
        a.xaxis.set_minor_locator(AutoMinorLocator()) 

        a.plot("time", "Open", data=df, color= lightColor, 
                               linewidth=1, alpha=0.8)
        a.plot("time", "Close", data=df, color= darkColor, 
                               linewidth=1, linestyle="dashed", alpha=0.8)

        v.fill_between(dateStamps , 0, volume, alpha=0.6, edgecolor=lightColor)
        a.set_ylabel("Price")
        v.set_ylabel("Volume")
        a.spines['top'].set_visible(False)
        a.spines['right'].set_visible(False)
        v.spines['top'].set_visible(False)
        v.spines['right'].set_visible(False)
        a.grid(color='grey', linestyle='-', linewidth=0.25, alpha=0.6)
        v.grid(color='grey', linestyle='-', linewidth=0.25, alpha=0.6)
        plt.setp(a.get_xticklabels(), visible = False)
        a.legend(bbox_to_anchor=(0, 1.02, 1, .102), loc=3, ncol=2, borderaxespad=0)
        title="({str(date.today())})"
        a.set_title(title)
    else:
        pass

Вот выдержка из моего time столбца:

  time  
 09:30:01  
 09:33:01  
 09:34:00  
 09:35:00  

x

Спасибо

1 Ответ

1 голос
/ 08 мая 2020

Сегодня 8-е число, так что, вероятно, по умолчанию просто добавляется день перед меткой времени. Попробуйте использовать strptime для форматирования ваших объектов datetime. Пример:

>>>date = '{:%Y-%m}'.format(dt.strptime('2018-08-31', '%Y-%m-%d'))
'2018-08'

Вероятно, это происходит, когда вы конвертируете df ['time'] в datetime64.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...