2D-координаты Histogram3D с заданной точки зрения - PullRequest
0 голосов
/ 02 октября 2011

enter image description here

Я нашел этот сюжет в сети. Я не знаю, какой вид распределения дает это. Я хотел бы нарисовать такой сюжет на бумаге. Но, если возможно, обратитесь за помощью к Mathematica:

С помощью этого изображения в качестве примера можно ли получить 2D-координаты каждого видимого края полосы графика?

Я не знаю, является ли это чисто краевым определением изображения на графике или мы можем получить эту информацию из самого графика.

В идеале я бы настроил размер изображения в соответствии с размером бумаги и получил бы масштабированные координаты. Это было бы невероятно.

Спасибо за внимание.

1 Ответ

1 голос
/ 02 октября 2011

@ 500 Если вы просто хотите нарисовать график, подобный этому, от руки, захватите его и внесите в программу для рисования в качестве трафарета.Затем нарисуйте его на другом слое, пока линии сетки включены;наконец, удалите картинку и распечатайте ее.Это легко масштабировать до любого размера, который вы пожелаете.Но если вы хотите узнать, как с ним работает Mathematica, читайте дальше.


Похоже, вы захотите использовать Histogram3D.(См. документация .)

Давайте сгенерируем нормально распределенные точки данных (n = 10k) вокруг средних 40 и 125 со стандартными отклонениями 10 и 50 соответственно и относительной величиной Спирмена 0,45.

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

Вы можете получить данные с FullForm, если хотите.Это даст вам z-значения.

Давайте построим график, используя Histogram3D.Мы будем использовать ячейки шириной 5 и 25 для x, y соответственно.

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

Histogram3D


Редактировать:

При наведении указателя мыши на полосу во всплывающей подсказке появляется значение z.Поэтому, если вы хотите собирать данные «вручную», вы можете сделать это таким образом.В качестве альтернативы, используя FullForm, вы можете искать List s, такие как следующие, которые, кажется, содержат координаты, которые вы ищете.Похоже, они находятся в 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] &)]
...