如何在3D中构建直方图?

时间:2011-02-28 16:22:05

标签: wolfram-mathematica histogram

我有列表清单。示例:

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

然后我填写清单。

这意味着长度@ A [[k]]是不同的;其中k <= N。

如何使用此数据构建Histogram3D?

2 个答案:

答案 0 :(得分:3)

假设你的意思是你正在预先分类数据,那么你有一个(参差不齐的)高度阵列:

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

将数组填充为矩形,如:

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

弄清楚每个维度中的bin边界是什么(长度将比bin的数量多一个):

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

将高度作为常数函数:

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

Mathematica graphics

(第一个参数中的数据是假的,因为它实际上并没有用于任何东西。)

答案 1 :(得分:2)

根据你的描述,你可能想要一个BarChart(我可能错了)

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

BarChart3D[a, ChartLayout -> "Grid"]

enter image description here

修改

如果真的正在寻找3D直方图:

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

Histogram3D@a  

enter image description here