Как динамически добавить элементы в экземпляр Roassal RTGrapher? - PullRequest
0 голосов
/ 16 марта 2019
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 Ответ

1 голос
/ 17 марта 2019

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

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

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

...