Может ли JavaFX 2.0 служить научным набором графиков?

Я пишу программу управления научным экспериментом в java, которая включает в себя графический интерфейс.

Я помогу выбрать библиотеку диаграмм для этой задачи. Программа будет содержать два типа диаграмм:

  • Линейная диаграмма с большим количеством точек данных (в диапазоне 10 ^ 4-10 ^ 5 точек на график) с частотой обновления примерно раз в 0,5-1 секунды, поэтому производительность является фактором. Эта диаграмма должна будет включать в набор точек данных с различным масштабированием.

  • Диаграмма рассеяния без множества точек данных, которая должна включать в себя строки ошибок или какой-либо способ указания ошибки в точках. Предпочтительно, как на оси X, так и на оси Y, например, в стиле перекрестия.

Логарифмическая шкала также является обязательным и хорошим инструментом масштабирования и инструментом экспорта. Я бы предпочел решение для обеих диаграмм с одним пакетом возможных.

Из исследования я сделал почти идеальный вариант, похоже, javaFX 2.0. Из того, что я читал, он имеет хорошую производительность и отлично выглядит, но я не могу найти вариант для баров ошибок. Поскольку я вообще не знаю javaFX, насколько просто расширить библиотеку диаграмм, включив в нее строки ошибок, или есть добавление с открытым исходным кодом, включающее это, что я не нашел?

Еще один вариант - графическая библиотека Google, которая, кажется, имеет все необходимые функции, однако я боюсь, что частота обновления будет проблемой в первом типе диаграммы. Является ли это жизнеспособной проблемой?

Я использовал JFreeChart, но меня беспокоит производительность, а также очень сложно добавить небольшие изменения. Они включают способ изменения цвета нанесенных точек во время выполнения после создания диаграммы, как это возможно в Matlab. Все это требует большого количества дополнительного кодирования и потребления времени, которое я стараюсь избегать.

Последний вариант, который кажется наиболее практичным, - JChart2D. Кажется, у меня большая часть функциональности, в которой я нуждаюсь, и моя единственная проблема заключается в том, что она выглядит не очень хорошо.

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

Это решение может, конечно, повлиять на весь пакет GUI, который я предпочитаю использовать, который в настоящее время выглядит Swing.

Спасибо,

Ответ 1

Java FX 2.0 и JFreeChart на самом деле не сравнимы. JFreeChart - это графическая библиотека для Swing, которая представляет собой среду GUI на Java. В то время как Java FX 2.0 является альтернативой Swing. Java FX 2.0 обеспечивает несколько объектов диаграммы как часть стандартной библиотеки, но они определенно не такие гибкие/настраиваемые, как те, которые доступны в JFreeChart. Конечно, Java FX 2.0, находящийся в Java, ничто не мешает вам кодировать очень конкретный график, который вам нужен, расширяя доступные компоненты.

Java FX 2.0

  • Плюсы: более современный внешний вид, чем Swing (личное субъективное мнение), возможно, станет новым стандартом GUI на Java через несколько лет.
  • Минусы: вам придется тратить больше времени на улучшение существующих компонентов диаграмм, менее широко используемых = меньше поддержки + меньше сообщества, если вы застряли

Swing:

  • Плюсы: доступно множество доступных графических библиотек (JFreeChart является очень всеобъемлющим, но есть альтернативы, как вы упомянули). Активное и широкое сообщество.
  • Минусы: мне лично не нравится внешний вид и чувство, - может устареть на определенном этапе, но явно не завтра.

Ответ 2

JFreeChart идеально подходит для этих целей. Поскольку он с открытым исходным кодом, его легко тестировать в контексте; FastScatterPlot обсуждается здесь. Изменение графика после его создания прямолинейно, как показано здесь; и возможны любые цветовые схемы, как показано здесь и здесь.

Ответ 3

Чтобы включить JFreeChart и Orson Charts ( которые основаны на Java2D), которые будут использоваться в JavaFX, я создал новый проект, который предоставляет API Graphics2D, поддерживаемый JavaFX Canvas. Проект FXGraphics2D в GitHub. Он также может использоваться для других библиотек Java2D (код находится под лицензией типа BSD).

Ответ 4

Вы можете использовать Open Office в качестве механизма построения диаграмм, есть мост java/UNO... JavaFX хорош, но графики не так гибки, как JFreeChart API решение может заключаться в использовании JfreeCharts внутри FX patrick

Ответ 5

Лучший научный пакет Java-диаграмм предоставляется The MathWorks. Использование MATLAB Builder JA позволяет вам закодировать графику и, при необходимости, вычислительную часть в MATLAB и преобразовать ее в классы Java.

Есть один недостаток. В последний раз, когда я использовал пакет, не было возможности включить окно построения в ваше приложение. Графики всегда отображаются в отдельном окне.

Еще одна проблема, вызывающая озабоченность, - это цена для этого решения.

matplolib является ближайшим конкурентом MATLAB, но нет Jython.