Может ли 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.