Я читал довольно много о графических библиотеках для Java и Javascript в последнее время, но я не нашел хорошего способа делать то, что хочу.
По сути, у меня есть иерархия наборов в отношении множества элементов (до нескольких тысяч). Эти наборы могут быть полностью или частично перекрывающимися, полностью покрывающими или полностью не пересекающимися друг с другом. Я хотел бы показать следующую информацию:
- Размер набора (по отношению к другим наборам)
- Значение "тепло" (в цветовом коде) набора, рассчитанного из элементов, которые он охватывает
- Полная топология множеств в одном графике (так, чтобы пользователю отображались перекрытия, пересечения и т.д.)
Изменить: Возможно, я должен привести пример того, что я имею в виду под множествами и элементами и частично перекрывающимися иерархиями. Ниже приведена упрощенная версия типов наборов, с которыми я имею дело (обратите внимание, что числа 1
- 10
и буквы a
- h
и X
представляют собой элементы, которые сопоставимы друг с другом):
Set1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
Set2 = {1, 2, 3, 4, 5, 6}
Set3 = {1, 2, 3}
Set4 = {1, 4, 5, 6, 7}
Set5 = {a, b, c, d, e, f, g, h}
Set6 = {a, b, c, d, e}
Set7 = {a, b, c, 7}
Set8 = {2, 4, 7, 8, c, f}
Set9 = {X}
Я не уверен, как я собираюсь отображать эту информацию интуитивным способом. Я видел графики Voronoi ¹, ², которые мне действительно нравятся визуально, однако у них есть другой математический фон, поэтому Я не думаю, что смогу изобразить иерархию, которую я имею в надлежащем порядке. Я хотел бы создать эти графики во время выполнения (в случае Java) или использовать Javascript в случае развертывания HTML, либо это прекрасно. Однако одна вещь, которая является ограничением, заключается в том, что графики должны быть либо созданы, либо могут быть экспортированы в векторную графику с высоким разрешением.
Мои короткие вопросы:
- Есть ли хороший способ визуализировать данные, которые у меня есть? Если он существует в легко реализуемой форме (т.е. В библиотеке)?
- Если нет легкого решения проблемы, другими словами, если мне нужно изобрести свое колесо в этом случае, как я могу сам реализовать такой график? Что является хорошей отправной точкой? На что я обращаю особое внимание?
Спасибо!
Изменить: Я потенциальная идея, которую я имел, заключалась в том, чтобы разметить все элементы универсального набора как шестиугольную сетку с желаемым наложением цвета, а затем нарисовать границы для наборов. Однако есть несколько проблем с этой идеей, в частности проблема определения местоположений для элементов, так что наборы не разбиваются по всему графику. Любые комментарии/предложения?