熊猫时间序列图 - 设置自定义滴答

时间:2016-02-10 20:24:19

标签: pandas matplotlib

我正在使用pandas创建一个通用的average_week聚合和绘图工具。一切都很好(我很高兴收到有关这方面的评论),但是嘀嗒声:我和#34;假的"日期,我想用自制的替换整套蜱(我已经在时间线上收到了关于1月1日的一些问题)。

然而,无论我追求什么,大熊猫似乎都会覆盖所有的蜱虫。我能够添加我想要的蜱虫 - 但我无法找到如何擦除熊猫的蜱虫。

def averageWeek(df, ax, tcol='ts', ccol='id', label=None, treshold=0, 
normalize=True, **kwargs):
    '''calculate average week on ts'''

    s = df[[tcol, ccol]].rename(columns={tcol:'ts',ccol:'id'}) # rename to convention

    s = df[['id', 'ts']].set_index('ts').resample('15Min', how='count').reset_index()
    s['id'] = s['id'].astype(float)


    s['ts'] = s.ts.apply(lambda x: datetime.datetime(year=2015,month=1, 
                                                              day=(x.weekday()+1), 
                                                              hour=x.hour, 
                                                              minute = x.minute))

    s = s.groupby(['ts']).agg('mean')


    if s.id.sum() >= treshold:
        if normalize:
            s = 1.0*s/s.sum()
        else:
            pass

        if label:
            s.rename(columns={'id':label}, inplace=1)

        s.plot(ax=ax, legend=False, **kwargs);



    else:
        print name, 'didnt pass treshhold:', s[name].sum()
        pass

    return g

fig, ax = plt.subplots(figsize=(18,6))


aw = averageWeek(LMdata, ax=frame, label='Lower Manhattan', alpha=1, lw=1)
x = [datetime.datetime(year=2015, month=1, day=i) for i in range(1,8)]
labels = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']



frame.axes.get_xaxis().set_ticks([])

plt.xlabel('Average week')

plt.legend()

enter image description here

1 个答案:

答案 0 :(得分:2)

你的问题是,实际上涉及两种刻度标签:主要和次要刻度标签,主要和次要刻度。你想要清除它们。例如,如果ax是相关轴,则以下内容将起作用:

ax.set_xticklabels([],minor=False) # the default
ax.set_xticklabels([],minor=True)

然后,您可以设置所需的刻度标签和刻度位置。