Как динамически добавить элементы в экземпляр Roassal RTGrapher?

Object subclass: #MultiData
    instanceVariableNames: 'b'
    classVariableNames: ''
    package: 'CFR-Extensions'

initialize
    b := RTGrapher new.

    b add: (self makeD: #('hello' 1 2 1)).
    b add: (self makeD: #('test' 1 2 11)).

    b

makeD: first
    | d |
    d := RTVerticalMultipleData new.
    d barShape color: Color blue.
    points := OrderedCollection new.
    points add: first.
    d points: points.
    d addMetric: #second.
    d addMetric: #third.
    d addMetric: #fourth.

    "Rotated text"
    d barChartWithBarTitle: #first rotation: -30.
    ^d

Выше по сути Several metrics per data point Пример из книги Россаля разбит на два метода. Вместо того, чтобы просто визуализировать статический набор данных, я искал способы добавления данных во время работы программы. Я хочу визуализировать трассировку параметров для табличного агента RL.

Когда я отображаю график в инспекторе, происходит то, что только последний элемент отображается в виде диаграммы. Есть некоторые наложения на этикетках, хотя этого не должно быть.

Первоначально я хотел сделать что-то вроде передать OrderedCollection очков, но путь RTVerticalMultipleData компилирование их в элементы Trachel делает такую ​​схему недопустимой, поэтому я решил вместо этого пакетировать данные перед добавлением их в качестве элемента.

Тот факт, что вышеупомянутое не работает, кажется мне ошибкой. Интересно, кроме исправления этого, есть ли лучший способ визуализации динамических данных?

1 ответ

Я не знаю roassal достаточно, чтобы ответить на вашу проблему, но для динамических визуализаций Pharo также имеет проект Telescope. ( https://github.com/TelescopeSt/Telescope)

В настоящее время Telescope работает только с Seaside через веб-визуализацию (с разъемом Cytoscape: https://github.com/TelescopeSt/TelescopeCytoscape). См. Демонстрацию по адресу: https://demos.ferlicot.fr/TelescopeDemo

Я не знаю, подходят ли вам веб-визуализации, но я делюсь на всякий случай.

Другие вопросы по тегам