Mathematica - логарифмическая шкала силы на метках графиков и сгруппированных осей - PullRequest
2 голосов
/ 18 августа 2011

У меня есть график ListPointPlot3D, и все три оси содержат логарифмическое распределение точек данных.

Примерно так:

..... .  .    .        .                .                                .

Как заставить Mathematica создать оси 'масштабируется логарифмически, так что я получаю линейное распределение точек данных по ним?

Спасибо

Ответы [ 2 ]

7 голосов
/ 18 августа 2011

AFAIK, нет LogLogLogPlot, поэтому следующая лучшая вещь будет взять журналы ваших данных и построить их. Затем вам нужно придумать Ticks вашего собственного.

Черновая версия:

tks = {1, 2, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10000};
list = 10^RandomReal[{0, 4}, {100, 3}]

ListPointPlot3D[Log[10, list]}, 
   Ticks ->
    {
      {Log[10, tks], tks}\[Transpose],
      {Log[10, tks], tks}\[Transpose],
      {Log[10, tks], tks}\[Transpose]
    }, 
    BoxRatios -> 1, PlotStyle -> PointSize -> 0.02
]

enter image description here

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

0 голосов
/ 18 августа 2011

Если вы хотите переделать свой график как BubbleChart3D (с постоянными размерами пузырьков, я полагаю), вы можете использовать опцию ScalingFunctions ( документация ), чтобы изменить масштаб осей для регистрации,Его также можно использовать для масштабирования осей другими способами, нежели логарифмическое масштабирование.Так как вы используете ListPointPlot3D, вам, возможно, потребуется также изменить ваши входные данные.

Это одно из досадных различий между «построением графиков» и «построением графиков» в Mathematica.Насколько я знаю, опция ScalingFunction применяется только к «диаграммам» (финансовым, гистограммным и пузырьковым диаграммам), а не к таким диаграммам, как ListPlot или ListPlot3D.

...