从给定的角度看Histogram3D的2D坐标

时间:2011-10-01 22:21:25

标签: 3d wolfram-mathematica histogram edge-detection mathematica-8

enter image description here

我发现网上的情节。我不知道哪种分布会产生这种情况。我想在纸上画出这样的情节。但是如果可能的话,从Mathematica那里得到一些帮助:

以这个图像为例,我可以获得图的每个可见条边的2D坐标吗?

我不知道它是否是从图中纯粹边缘检测图像,或者我们是否可以从图中获取此信息。

理想情况下,我会调整图像大小以匹配我的纸张尺寸并获得缩放的坐标。这将是不可思议的。

感谢您的关注。

1 个答案:

答案 0 :(得分:1)

@ 500如果你只是想手工绘制这样的情节,捕捉它并将其作为模板带入绘图程序。然后在不同的图层上绘制它,同时打开网格线;最后,删除图片并打印出来。将它缩放到您想要的任何大小都是一件容易的事。但是你想要探索Mathematica如何使用它,请继续阅读。


您似乎希望使用Histogram3D。 (见documentation。)

让我们在40和125的平均值周围生成正态分布的数据点(n = 10k),标准偏差分别为10和50,Spearman rho为.45。

data = RandomVariate[BinormalDistribution[{40, 125}, {10, 50}, .45],  10^4]

如果您愿意,可以从FullForm获取数据。这将为您提供z值。

让我们使用Histogram3D绘制它。我们将分别为x,y使用宽度为5和25的区间。

Histogram3D[data2, {{Table[10 + 5 k, {k, 15}]}, {Table[ 0 + 25 k, {k, 0, 12}]}}]

Histogram3D


修改

将鼠标悬停在条形图上时,z值将显示在工具提示中。因此,如果您想“手动”收集数据,您可以这样做。或者,使用FullForm,您可以查找以下List,其中包含您要查找的坐标。它们似乎位于List之后CuboidBox,但它们可能是CuboidBox参数。有人应该能够澄清这一点。

List[Tooltip[
  StatusArea[
  List[RawBoxes[
  DynamicBox[
  List[FEPrivate`If[CurrentValue["MouseOver"], 
    EdgeForm[
     List[RGBColor[0.6666666666666666`, 0.6666666666666666`, 
       0.6666666666666666`], AbsoluteThickness[1.5`]]], List[], 
       List[]], 
       CuboidBox[List[15.`, 0.`, 0.`], List[20.`, 25.`, 10.`]]]]]], 
       10.`], Style[10.`, List[GrayLevel[0]]]]]

您也可以使用LabelingFunction来显示z值,但除非您正在垂直于xy平面,否则这看起来不会很好,在这种情况下,使用DensityPlot可能会更好。

Histogram3D[data2, {{Table[10 + 5 k, {k, 15}]}, 
  {Table[0 + 25 k, {k, 0, 12}]}}, 
  LabelingFunction -> (Placed[Panel[#1, FrameMargins -> 0], Above] &)]