Python Chaco оси этикетки времени форматирование времени
Вопрос
В чако, TimeFormatter
Класс используется для форматирования временной строки клещей этикетки. Есть ли способ указать формат времени (что-то вроде time.strftime()
).
Исходный код теперь жестко кодирует формат при отображении месяца и дня месяца в американский стиль (MMDD). Я хотел бы добавить некоторую гибкость, чтобы оттуды формата времени / даты каким-то образом будут переданы TimeFormatter
Я не знаю никого хорошего способа сделать это (кроме изменения самого исходного кодаTimeFormatter._formats
Словарь))
Решение
Честно говоря, самый простой способ будет обезболивающим словарь _Formats _ _Formats:
from enthought.chaco.scales.formatters import TimeFormatter
TimeFormatter._formats['days'] = ('%d/%m', '%d%a',)
Если вы не хотите делать это, то вам нужно подкласс TimeFormatter. Это просто. Что более громоблокирует все существующие масштабные системы, которые пакет Chaco.Scales создает, используйте ваш новый подкласс, а не встроенный TimeFormatter. Если вы посмотрите на SCALES.Time_scale.timescale, он принимает аргумент ключевого слова «Fixter» в конструкторе. Итак, в нижней части Time_scale.py, когда построен список MDyscales, вам придется создать свой собственный:
EuroMDYScales = [TimeScale(day_of_month=range(1,31,3), formatter=MyFormatter()),
TimeScale(day_of_month=(1,8,15,22), formatter=MyFormatter()),
TimeScale(day_of_month=(1,15), formatter=MyFormatter()),
TimeScale(month_of_year=range(1,13), formatter=MyFormatter()),
TimeScale(month_of_year=range(1,13,3), formatter=MyFormatter()),
TimeScale(month_of_year=(1,7), formatter=MyFormatter()),
TimeScale(month_of_year=(1,), formatter=MyFormatter())]
Затем, когда вы создаете ScalestickGenerator, вам нужно пройти в этих масштабах к масштабам:
euro_scale_system = CalendarScaleSystem(*(HMSScales + EuroMDYScales))
tick_gen = ScalesTickGenerator(scale=euro_scale_system)
Тогда вы можете создать ось, давая ему этот галочку генератора:
axis = PlotAxis(tick_generator = tick_gen)
Х-е, извините, это около месяца отставать. Я не очень проверяю стопку Stackoverflow. Если у вас есть другие вопросы Chaco, я бы порекомендовал подписаться в список рассылки Chaco-пользователей ...