1

さまざまな種類のデータを処理できるプログラムがあります。大きいデータもあれば、非常に小さいデータもあります。いくつかの理由で、以下のように図をプロットするために matplotlib しか使用できません:

      TimeDelta=FF.index[-1]-FF.index[0]          
      ax = fig.add_subplot(111)
      if TimeDelta>timedelta(days=6):
          intr=int(TimeDelta.days/6)
      else:
          intr=2
  #ax.xaxis.set_minor_locator(dates.WeekdayLocator(byweekday=(1),interval=intr))
      ax.xaxis.set_minor_locator(dates.DayLocator(interval=intr))
      ax.xaxis.set_minor_formatter(dates.DateFormatter('%b%d'))
      years= matplotlib.dates.YearLocator() # every year
      yearsFmt = matplotlib.dates.DateFormatter('')
      ax.xaxis.set_major_locator(years)
      ax.xaxis.set_major_formatter(yearsFmt) 

この方法は複雑すぎると思います。誰かがこの状況に対処するための他の簡単な方法を持っていますか?

4

1 に答える 1

1

調整できるノブがいくつかあるAuto*クラスがdatesありますが、非常に具体的なフォーマットが必要なようです。私はただ関数を作るでしょう:

def my_x_axis_format(ax, dt):
    if dt>timedelta(days=6):
      intr=int(dt.days/6)
    else:
        intr=2
    #ax.xaxis.set_minor_locator(dates.WeekdayLocator(byweekday=(1),interval=intr))
    ax.xaxis.set_minor_locator(dates.DayLocator(interval=intr))
    ax.xaxis.set_minor_formatter(dates.DateFormatter('%b%d'))
    years= matplotlib.dates.YearLocator() # every year
    yearsFmt = matplotlib.dates.DateFormatter('')
    ax.xaxis.set_major_locator(years)
    ax.xaxis.set_major_formatter(yearsFmt) 

そして、あなたはあなたの数字を次のように作ることができます

TimeDelta=FF.index[-1]-FF.index[0]          
ax = fig.add_subplot(111)
my_x_axis_format(ax, TimeDelta)
于 2013-02-14T03:41:29.557 に答える