在Mathematica中具有高度数据的条形图

时间:2011-12-31 00:14:30

标签: wolfram-mathematica

我有一个矩阵{{2, 1, 2, 2, 1}, {1, 3, 0, 1, 2}, {3, 3, 0, 3, 1}, {1, 1, 2, 1, 1}},我想生成一个3d图,例如总共有4 * 5 = 20个条。

在小方块(1,1)处有一个高度为2的条形(即在xy平面上由点{{0,0},{0,1},{1,1}形成的方形,{1,0}}),

另一个高度为1的条形,基于小方形(1,2)(即xy平面上由点{{0,1},{0,2},{1,2},{形成的方形} 1,0}}),

...

另一个高度为3的条形,基于小方形(2,2)(即在xy平面上由点{{1,1},{2,1},{2,2}形成的方形,{ 1,2}})

...

另一个高度为1的条形基于小方形(4,5)(即xy平面上由点{{3,4},{4,4},{4,5}形成的方形, {3,5}})

我找不到一个简单的方法来做到这一点。非常感谢你的帮助!

2 个答案:

答案 0 :(得分:4)

你想要的是BarChart3D

注意,此功能有两种形式:

  • BarCharts包中有BarChart3D。此功能可以实现您想要的功能,但在Mathematica 7 +。
  • 中已弃用
  • 然后主命名空间中只有BarChart3D(仅限Mathematica 7+),它也可以执行您想要的操作,但需要传递选项ChartStyle -> "Grid"以显示您想要的结果。

以下是这两个示例代码:

Mathematica 6和之前的

<<BarCharts`;
data = {{2, 1, 2, 2, 1}, {1, 3, 0, 1, 2}, {3, 3, 0, 3, 1}, {1, 1, 2, 1, 1}};
BarChart3D[data]

Mathematica 7及更高版本

data = {{2, 1, 2, 2, 1}, {1, 3, 0, 1, 2}, {3, 3, 0, 3, 1}, {1, 1, 2, 1, 1}};
BarChart3D[data, ChartLayout -> "Grid"]

答案 1 :(得分:3)

data = {{2,1,2,2,1}, {1,3,0,1,2}, {3,3,0,3,1}, {1,1,2,1,1}};

BarChart3D[data, ChartLayout -> "Grid", BarSpacing -> 0]

enter image description here

修改

在wiki之后更新 - 指定问题:

BarChart3D[data, ChartLayout -> "Grid", BarSpacing -> {0, 0},
                 LabelingFunction -> (Row[{#1, Reverse[#2 - 1], Reverse[#2]}] &), 
                 AxesLabel -> {"x", "y", "z"}]

enter image description here

这里x和y间距都消失了。将光标设置在给定栏上,得到z{x_min,y_min}{x_max,y_max},位于顶部红色即2{4,1}{5,2}