Я использую matplotlib для отображения данных по временным меткам в python 2.6. Я нашел функцию plot_date (), и она прекрасно работает! Тем не менее, время все в UTC. Я прочитал документы, в которых говорится, что вы можете передать параметр tz в функцию, чтобы установить пользовательский timezome. Это не похоже на работу. Даже после передачи параметра время остается в UTC. Я попробовал несколько методов, но безрезультатно.
Примечания:
Я импортирую CSV-файл, заполненный временем эпох, для генерации оси X. Итак, я конвертирую из эпох в формат matplotlib, используя epoch2num ().
Источник выборки:
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
import matplotlib.dates as mdates
from pytz import timezone
...
dates = mdates.epoch2num(dates) # Converting my list of dates from epochs
plt.plot_date(dates, data,fmt='-',tz="US/Eastern",xdate=True)
Этот код не может выдавать правильные временные метки вдоль оси. Хотя график вполне нормально.
Также пробовал:
plt.plot_date(dates,data,fmt='-',tz=timezone('US/Eastern'),xdate=True)
Тот же результат, что и в первом примере. Все остается в UTC.
Для ухмылок я запустил num2date () в списке «даты» и распечатал вывод. Выходные значения были в UTC. Затем я добавил tz = timezone ('US / Eastern') к вызову num2date (), и значения выводились в восточном, как и должно быть.
Я также пытался «предварительно преобразовать» даты в восточные, прежде чем вызывать plot_date, а затем пропустить ключевое слово tz = в plot_date, но все равно значения UTC.
Наконец, я отредактировал свой файл matplotlibrc и изменил #timezone UTC на #timezone US / Eastern, но все еще безуспешно.
Что мне не хватает, чтобы получить эти даты на графике за пределами UTC?