ticker.FuncFormatter не применяет метки, почему? - PullRequest
0 голосов
/ 06 февраля 2019

Я использую ticker.FuncFormatter для преобразования времени, измеренного в секундах, в формат H: M: S для отметок оси X.Тем не менее, тики по-прежнему показывают необработанные секунды, что наводит меня на мысль, что ax.xaxis.set_major_formatter не использовался.Затем я попытался установить для major_formatter значение NullFormatter (), и в результирующем графике действительно не отображаются значения на отметках оси X.Вы можете увидеть в моем коде, где я рекомендовал NullFormatter, который я использовал для тестирования.

Так что я должен вызывать ticker.FuncFormatter неправильно или не в том месте, но пара часов устранения неполадок не привела кфрукты.Я надеюсь, что кто-то здесь имеет больше опыта с matplotlib и может увидеть мою ошибку.

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt, mpld3
import csv
import datetime

probe1 = [123, 128, 192, 178, 210, 223, 252, 268]
probe2 = [121, 135, 164, 212, 245, 298, 301, 303]
secs = [1, 1800, 3600, 5400, 7200, 10800, 14403, 21645]

def hms(x, pos=None):
    td = datetime.timedelta(seconds = x)
    hours = int((td.days * 24))
    hoursPlus = int(td.seconds / 3600)
    hours = hours + hoursPlus
    minutes = int(((td.seconds - (hoursPlus * 3600)) / 60))
    seconds = int(td.seconds - (minutes * 60) - (hoursPlus * 3600))
    tickString = str(hours) + ":" + str(minutes) + ":" + str(seconds)
    print(tickString)
    return tickString

formatter = plt.FuncFormatter(hms)

fig, ax = plt.subplots(figsize=(12, 7))
plt.plot(secs, probe1, label='Probe 1')
plt.plot(secs, probe2, label='Probe 2')
ax.xaxis.set_major_formatter(formatter)

plt.text(secs[-1]+1, probe1[-1]+1, probe1[-1], fontsize=15)
plt.text(secs[-1]+1, probe2[-1]+1, probe2[-1], fontsize=15)


plt.xlabel('Time (sec)')
plt.ylabel('Temp (F)')
plt.title('Temp History')
plt.legend(loc=2)

mpld3.save_html(fig, "test_example2.html")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...