Chaco MultiLinePlot – не может получить простой график для отображения, задаваясь вопросом, не сломался ли пакет?

Я пытаюсь создать многострочный график для отображения нескольких временных рядов данных (напряжений) из массива 2D NumPy. Я начал очень просто пытаться построить две строки с десятью точками данных из массива 2×10, но я даже не могу заставить это работать, не получая большой объем ошибок, которые я не могу отлаживать.

Импорт:

import numpy from traits.api import HasTraits, Instance from traitsui.api import View, Item from chaco.api import MultiLinePlot, ArrayDataSource, MultiArrayDataSource from enable.component_editor import ComponentEditor 

Тестовый массив:

 test_array = numpy.random.rand(10,2) 

Класс отображения:

 class Multi_line_graph(HasTraits): plot = Instance(MultiLinePlot) traits_view = View( Item('plot',editor=ComponentEditor(), show_label=False), width=1024, height=768, resizable=True, title="EEG Preview") def __init__(self, my_data): super(Multi_line_graph, self).__init__() x = ArrayDataSource(numpy.arange(1, my_data.shape[0])) y = my_data.transpose() #since my data columnwise y = MultiArrayDataSource(y) yidx = ArrayDataSource(numpy.arange(y.get_shape()[0])) plot = MultiLinePlot(index=x, yindex=yidx, value=y) self.plot = plot 

Создать экземпляр класса:

 my_graph = Multi_line_graph(test_array) 

Дисплей (настроить свойства):

 my_graph.configure_traits() 

Затем я получаю окно, но оно зависает и вылетает из ядра Python, и эта ошибка отображается в оболочке:

 Exception occurred in traits notification handler for object: <chaco.multi_line_plot.MultiLinePlot object at 0x000000000D0CFD58>, trait: bounds_items, old value: <undefined>, new value: <traits.trait_handlers.TraitListEvent object at 0x000000000D18C908> Traceback (most recent call last): File "C:\Users\pzl46097\AppData\Local\Enthought\Canopy\User\lib\site-packages\traits\trait_notifiers.py", line 340, in __call__ self.handler( *args ) File "C:\Users\pzl46097\AppData\Local\Enthought\Canopy\User\lib\site-packages\chaco\base_xy_plot.py", line 613, in _bounds_items_changed self._update_mappers() File "C:\Users\pzl46097\AppData\Local\Enthought\Canopy\User\lib\site-packages\chaco\base_xy_plot.py", line 594, in _update_mappers x_mapper.screen_bounds = (x, x2) AttributeError: 'NoneType' object has no attribute 'screen_bounds' Exception occurred in traits notification handler for object: <chaco.multi_line_plot.MultiLinePlot object at 0x000000000D0CFD58>, trait: bounds_items, old value: <undefined>, new value: <traits.trait_handlers.TraitListEvent object at 0x000000000D0C4C88> Traceback (most recent call last): File "C:\Users\pzl46097\AppData\Local\Enthought\Canopy\User\lib\site-packages\traits\trait_notifiers.py", line 340, in __call__ self.handler( *args ) File "C:\Users\pzl46097\AppData\Local\Enthought\Canopy\User\lib\site-packages\chaco\base_xy_plot.py", line 613, in _bounds_items_changed self._update_mappers() File "C:\Users\pzl46097\AppData\Local\Enthought\Canopy\User\lib\site-packages\chaco\base_xy_plot.py", line 594, in _update_mappers x_mapper.screen_bounds = (x, x2) AttributeError: 'NoneType' object has no attribute 'screen_bounds' Exception occurred in traits notification handler. Please check the log file for details. 

Я не знаю, что это значит. Я прочитал и перечитал документацию по API:

http://docs.enthought.com/chaco/api/renderers.html#multilineplot

а также документы руководства пользователя по адресу:

http://docs.enthought.com/chaco/user_manual/plot_types.html#multi-line-plot

но, похоже, нет никакой другой документации по этому классу. Мне интересно, если это не поддерживается и может быть нарушено, или если я что-то делаю неправильно (я вполне могу быть таким, какой я использовал только Чако в течение 1 недели, а библиотека для меня новая, как и OOP в Python вообще ).

Большое спасибо заранее за любую помощь ..

 
Interesting Posts for Van-Lav
Python - лучший язык программирования в мире.