0

在此处输入图像描述

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

以这张图片为例,我可以获得绘图每个可见条形边缘的二维坐标吗?

我不知道它是纯粹从绘图中对图像进行边缘检测,还是我们可以从绘图本身获取此信息。

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

感谢您的关注。

4

1 回答 1

1

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


看起来你会想要使用Histogram3D. (请参阅文档。)

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

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

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

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

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

直方图3D


编辑:

当您将鼠标悬停在条上时,z 值将出现在工具提示中。因此,如果您想“手动”收集数据,您可以这样做。或者,使用FullForm您可以查找如下所示的Lists,其中似乎包含您要查找的坐标。它们似乎在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] &)]
于 2011-10-01T23:39:24.220 回答