Скажем, у меня есть следующие четырехмерные данные, где первые три можно рассматривать как координаты, а последние можно рассматривать как значения.
c1, c2, c3, value
1, 2, 6, 0.456
34, 34, 12 0.27
12, 1, 66 0.95
Как лучше визуализировать влияние первых трех координат на последнее значение?
Я знаю о трех методах.
Одним из них является трехмерный график для первых трех координат с размером точек в качестве значения четырех. Но не так просто увидеть тенденцию в данных.
Другой использует серию трехмерного графика, каждый из которых имеет фиксированную координату.
Другим может быть так называемые «решетчатые графы» в решетке R. Не только для этого, но и так кажется.
r
data-visualization
Тайлер 傲 来 国 主
источник
источник
Ответы:
Если первые три являются просто пространственными координатами и данные немногочисленны, вы можете просто сделать трехмерную диаграмму рассеяния с разными размерами или цветными точками для значения.
Выглядит примерно так: (источник: gatech.edu )
Если ваши данные предназначены для непрерывного характера и существуют на решетчатой сетке, вы можете нанести несколько изоконтуров данных с помощью Marching Cubes .
Другой подход, когда у вас плотные данные 4D, состоит в отображении нескольких 2D-срезов данных, встроенных в 3D. Это будет выглядеть примерно так:
источник
У вас есть четыре количественные переменные? Если это так, попробуйте туры, параллельные координаты, матрицы рассеяния. Пакет tourr (и tourrGui) в R будет запускать туры, в основном, ротацию в больших измерениях, вы можете выбрать проекцию в 1D, 2D или более, и есть бумага JSS, которую вы можете прочитать, чтобы начать ссылаться на нее. Параллельные координатные диаграммы и матрицы рассеяния находятся в пакете GGally, также матрицы рассеяния находятся в пакете YaleToolkit. Вы также можете посмотреть на http://www.ggobi.org видео и дополнительную документацию по всем этим.
Если ваши данные полностью категоричны, вы должны использовать мозаичные графики или варианты. Взгляните на пакет productplots в R, также vcd имеет некоторые разумные функции, или пакет ggparallel, чтобы сделать эквивалент параллельных координатных графиков для категориальных данных. Также, только что обнаруженный пакет extracat имеет некоторые функции для отображения категориальных данных.
Первоначально я неправильно понял вопрос, потому что остановился на этом вопросе и забыл прочитать полное описание. Как и в подходе ниже (точки раскраски в 3D), вы можете использовать связанную кисть для исследования функций, определенных в многомерных пространствах. Посмотрите здесь видео, где показано, как это сделать для многомерной нормальной трехмерной функции. Кисть рисует точки с высокой плотностью (высокие значения функции), а затем перемещается к более низким и низким значениям плотности (низкие значения функции). Места, где выполняется выборка функции, показаны на трехмерной вращающейся диаграмме рассеяния с использованием обхода, который также можно использовать для просмотра доменов 4, 5 или более высоких измерений.
источник
Попробуйте Чернофф лица . Идея состоит в том, чтобы прикрепить переменные к чертам лица. Например, размер улыбки будет одной переменной, округлость лица - другой и т. Д. Как бы нелепо это ни звучало, это может сработать, если вы найдете умный способ привязать переменные к объектам.
Другой способ - показать двухмерные проекции трехмерной фазовой диаграммы. Скажем, у вас есть х1, х2, х3, х4 ваши переменные. Для каждого значения x4 нарисуйте трехмерный график точек (x1, x2, x3) и соедините точки. Это лучше всего работает, когда заказывается x4, например, дата или время.
ОБНОВЛЕНИЕ: Вы также можете попробовать пузырьковые графики. В трех измерениях будет обычная декартова x, y, z, а в 4-м измерении будет размер пузырьковой точки.
Вы можете попробовать анимацию, то есть использовать время в качестве четвертого измерения.
Также сочетание пузыря и анимации: х, у, пузыря и времени.
Также с Черноффом связан глиф сюжета , который может выглядеть немного серьезнее. Это звезды с длиной лучей, пропорциональной переменным значениям.
источник