Как я могу построить гистограмму в 3D? - PullRequest
1 голос
/ 28 февраля 2011

У меня есть список списков.Пример:

A = Range[Range[N], 1]; where N = const. 

Затем я заполняю списки.

Это означает, что длина @ A [[k]] различна;где k <= N. </p>

Как я могу построить Histogram3D с этими данными?

Ответы [ 2 ]

3 голосов
/ 28 февраля 2011

Предполагая, что вы имеете в виду предварительную привязку данных, у вас есть (рваный) массив высот:

heights = {{1}, {1, 2}, {1, 2, 3}, {1, 2, 3, 4}, {1, 2, 3, 4, 5}}

Заполните массив в прямоугольную форму примерно так:

heights = PadRight[#, 5] & /@ heights

Определите, какие у вас границы бинов в каждом измерении (длина будет на один больше, чем количество бинов):

x = Range[1,6,1]
y = Range[1,11,2]

Дайте высоту как постоянную функцию:

Histogram3D[{{0, 0}}, {{x}, {y}}, heights &]

Mathematica graphics

(Данные в первом аргументе являются поддельными, поскольку они фактически ни для чего не используются.)

2 голосов
/ 28 февраля 2011

Из вашего описания, вероятно, вы хотите BarChart (я могу ошибаться)

a = Table[i, {i, #}] & /@ Range[10]

BarChart3D[a, ChartLayout -> "Grid"]

enter image description here

Изменить

ЕслиВы действительно ищете трехмерную гистограмму:

a = Flatten[
  Table[RandomReal[NormalDistribution[i, .3], {10 i, 2}], {i, #}] & /@ Range[10], 1]  

Histogram3D@a  

enter image description here

...