matplotlib: в чем разница с set_major_formatter () и fmt_xdata? - PullRequest
0 голосов
/ 03 января 2019

Я новичок в matplotlib.И я скопировал код для простого примера pyqt-matplotlib из здесь , и изменил plot() из class PlotCanvas, чтобы сделать диаграмму Value-Time.

  def plot(self):
    dates = mdates.drange(dt.datetime(2010, 1, 1), dt.datetime(2010,1,2),
                  dt.timedelta(minutes=10))
    y_val = [random.random() for i in range(len(dates))]

    ax = self.figure.add_subplot(111)
    ax.plot(dates, y_val)

    use_major_formatter = True
    if use_major_formatter:
        ax.xaxis.set_major_formatter(mdates.DateFormatter('%m-%d %H:%M'))
    else:
        ax.fmt_xdata = DateFormatter('%%m-%d %H:%M')
    self.figure.autofmt_xdate()

    ax.set_title('PyQt Matplotlib Example')
    self.draw()

Над кодом требуется следующие импорта:

import matplotlib.dates as mdates
import datetime as dt
from matplotlib.dates import DateFormatter

Я пробовал set_major_formatter() и fmt_xdata.И я обнаружил, что fmt_xdata не работает.

Но почему?В чем разница с set_major_formatter () и fmt_xdata?

Примечание: в приведенном выше коде я добавил оператор if для проверки двух методов.

1 Ответ

0 голосов
/ 04 января 2019

ax.xaxis.set_major_formatter() и ax.fmt_xdata - это совершенно разные вещи.

Первый, ax.xaxis.set_major_formatter(), устанавливает форматер для оси x на вашем графике.Это полезно для отображения меток в необходимом формате.

Вторая, ax.fmt_xdata - это функция, которая принимает координату данных и форматирует ее.По умолчанию он просто возвращает то же самое, что и основной форматтер.Он используется для внутреннего форматирования чисел в графическом интерфейсе, которые отображаются при перемещении мыши.

enter image description here

Метод ax.fmt_xdata можно заменить наваш собственный вызываемый объект на случай, если вы хотите, чтобы графический интерфейс отображал числа / строки, отличные от вашей оси.

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