Я нашел это изображение несколько лет назад. Я не помню, где я его нашел, но он действительно помог мне в обучении моих студентов всем сетевым концепциям. Я имею в виду, что такое изображение сети каким-то образом сделало вещи более ясными, чем эти двухмерные сетевые диаграммы.
Единственная проблема с этим изображением заключается в том, что оно фактически не содержит значков реальных сетевых элементов. Я хочу заменить значки, показанные на рисунке, на real
(не символические) значки оборудования и создать аналогичную трехмерную карту.
Может ли кто-нибудь предложить мне хорошее программное обеспечение для выполнения этой работы?
Примечание. На самом деле это кросс-пост. Сначала я разместил это на сервере с ошибкой , и, вероятно, оно будет закрыто на этом сайте. Так что спрашивайте здесь.
То, о чем вы просите, может быть выполнено многими программами 3D-рендеринга (Cinema 4D, Maya и т. д.). Бесплатный среди них называется Blender . К сожалению, использование этой программы требует обучения, и вы, вероятно, потратите значительно больше времени, чем на 2D-карту сети, но это может быть то, что вы ищете. Я согласен, однако, что эту форму намного легче переварить, чем устаревшие 2D-карты сети, которые я видел, - она дает физические местоположения соединений, которые помогают понять соединения.
Я согласен с тем, что 3D-карта, вероятно, будет ненужным отвлечением от ваших данных. Тем не менее, это может быть полезно для интерактивного использования — если вы можете анимировать прохождение или облет, это может добавить информативности.
Подобные графики легко кодировать в Mathematica. Этот код (с некоторыми случайными данными):
vertexshape[{xc_, yc_, zc_}, name_] :=
If[Mod[ToExpression[name], 3] == 0,
{White, Text[name, {xc, yc, zc}], RandomChoice[{Orange, Green}],
Cuboid[{xc, yc, zc} - .1, {xc, yc, zc} + .1]},
{Yellow, Text[name, {xc, yc, zc}], RandomChoice[{Purple, Blue}],
Sphere[{xc, yc, zc}, .1]}]
edgeshape[vertices_, nodes_, label_] :=
If[Mod[ToExpression[First[nodes]], 3] == 0,
{Red, Cylinder[vertices, .05]},
{Gray, Cylinder[vertices, .02]}]
g = TreeGraph[RandomInteger[#] -> # + 1 & /@ Range[0, 520]];
GraphPlot3D[g,
VertexRenderingFunction -> vertexshape,
EdgeRenderingFunction -> edgeshape,
PlotStyle ->
Directive[EdgeForm[None], FaceForm[Orange, Red],
Specularity[White, 30]],
Boxed -> False,
Background -> Black]
генерирует такие изображения
:
Честно говоря, если карта в 2D, я не вижу смысла делать ее 3D любой ценой... Я имею в виду, что если вы хотите иметь что-то в 2D, есть много (более простых) способов добиться этого, первое, что приходит на ум, — это использование кода для создания графика, если у вас есть такой набор данных. Хорошим примером может быть d3.js, относительно простая для понимания библиотека, если у вас есть хорошие основы html, css и немного javascript. То, что вы ищете, можно увидеть здесь: http://excelramblings.blogspot.it/2013/06/visualization-of-sites-to-tags-with-d3js.html .
Большинство сетевых визуализаций в наши дни могут обрабатывать большие данные, а некоторые из них будут иметь 3D-опции. Лично я думаю, что 3D часто побеждает цель, но это мое личное мнение.
Обратите внимание, что сетевая визуализация — это не то же самое, что многомерная визуализация, и что некоторые из них ограничены сетями и, следовательно, основаны только на узлах. У некоторых могут быть плагины для расширения сетевого анализа:
Gephi.org — готовые варианты немного ограничены, но есть множество плагинов для продвинутых альтернатив.
In-spire - визуальный анализ документов
Не на основе узлов, а еще один подход к визуализации сети: