Я использую matplotlib для построения данных против временных меток в python 2.6. Я нашел функцию plot_date(), и она отлично работает! Тем не менее, все время в UTC. Я прочитал документы, в которых говорится, что вы можете передать параметр tz функции для установки пользовательского времени. Кажется, это не работает. Даже после прохождения параметра время остается в 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 = часовой пояс ('US/Eastern') к вызову num2date(), а выходные значения были в восточном направлении, как и должно быть.
Я также пытался "предварительно преобразовать" даты в Eastern перед вызовом plot_date, а затем опустив ключевое слово tz = в plot_date, но все же значения - это UTC.
Наконец, я редактировал файл matplotlibrc и менял #timezone UTC на #timezone US/Eastern и до сих пор не добился успеха.
Что мне не хватает, чтобы получить эти даты на графике за пределами UTC?