Графики Elki из чистого Java API

Я искал способ экспортировать сгенерированную ELKI визуализацию в файл SVG, который впоследствии можно будет отобразить в моем приложении. Однако я не смог найти ни одного примера кода, который использует типичные конструкторы Java. Мои цели:

  • input Результаты в визуализации.
  • установите конструктор VisualizerParameterizer, добавив предыдущую визуализацию.
  • правильно установите конструктор ExportVisualizations для записи файла.

Например, предположим, что у меня уже есть экземпляр OutlierResult, и теперь я хочу отобразить оценки с помощью BubbleVisualization и создать файл SVG? Как я могу сделать это, используя чистый Java API?


person André Guerra    schedule 27.03.2018    source источник


Ответы (1)


Некоторые классы, такие как VisualizerParameterizer, могут немного раздражать при настройке вручную, потому что это включает в себя поиск всех нужных фабрик визуализаций из загрузчика служб — там есть уровень подключаемых модулей, который позволяет добавлять новые визуализации в рендериться автоматически.

Из-за этого проще всего использовать API параметризации, например (стиль git):

ExportVisualizations export = new ELKIBuilder<>(ExportVisualizations.class)
    .with(ExportVisualizations.Parameterizer.FOLDER_ID, "folder")
    .build();

или если вы все еще используете старый релиз/не любите сборщиков:

ListParameterization params = new ListParameterization();
params.addParameter(ExportVisualizations.Parameterizer.FOLDER_ID, "folder");
ExportVisualizations export = ClassGenericsUtil.parameterizeOrAbort(
                                  ExportVisualizations.class, params);

Потому что вам нужно только указать обязательные параметры, и он может создавать вложенные объекты. В этом случае он также создаст VisualizerParameterizer, поэтому вы также можете добавить параметры для этого класса, такие как

.with(VisualizerParameterizer.Parameterizer.ENABLEVIS_ID, "scatter")

чтобы включить только визуализацию точечной диаграммы.

person Erich Schubert    schedule 28.03.2018
comment
Вызвано: java.lang.ExceptionInInitializerError в de.lmu.ifi.dbs.elki.visualization.VisualizerParameterizer$Parameterizer.collectFactorys(VisualizerParameterizer.java:329) в de.lmu.ifi.dbs.elki.visualization.VisualizerParameterizer$Parameterizer. makeOptions(визуализаторпараметризатор.java:317) - person André Guerra; 29.03.2018
comment
Не могли бы вы привести полный пример от базы данных до BubbleVisualisation? Я искал официальные учебники и как это сделать, однако я не смог найти ни одного. В настоящее время я реализовал ваше решение, только заменив папку абсолютным путем к папке. В настоящее время у меня есть исключение, упомянутое выше. - person André Guerra; 29.03.2018