Как выбрать числа, показанные на осях сюжета в Mathemetica? - PullRequest
3 голосов
/ 20 августа 2011

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

Как изменить графикнумерация осей, как 2,4,6, .. в PI, 2PI, 3PI, ...?

Ответы [ 3 ]

8 голосов
/ 21 августа 2011

Говард уже дал правильный ответ в том случае, если вы хотите, чтобы метки Pi, 2 Pi и т. Д. Имели значения Pi, 2 Piи т. д.

Иногда вам может понадобиться использовать замещающие метки тиков при определенных значениях без изменения масштаба данных.

Один из других примеров в документации показывает, как:

Plot[Sin[x], {x, 0, 10}, 
 Ticks -> {{{Pi, 180 \[Degree]}, {2 Pi, 360 \[Degree]}, {3 Pi, 
  540 \[Degree]}}, {-1, 1}}]

enter image description here

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

myTickGrid[min_, max_, seg_, units_String, len_?NumericQ, 
  opts : OptionsPattern[]] := 
 With[{adj = OptionValue[UnitLabelShift], bls = OptionValue[BottomLabelShift]}, 
Table[{i, 
If[i == max, 
 DisplayForm[AdjustmentBox[Style[units, LineSpacing -> {0, 12}], 
   BoxBaselineShift ->  If[StringCount[units, "\n"] > 0, adj + 2, adj]]], 
 If[i == min, 
  DisplayForm@AdjustmentBox[Switch[i, _Integer, 
     NumberForm[i, DigitBlock -> 3, 
      NumberSeparator -> "\[ThinSpace]"], _, N[i]], 
    BoxBaselineShift -> bls], 
  Switch[i, _Integer, NumberForm[i, DigitBlock -> 3, 
    NumberSeparator -> "\[ThinSpace]"], _, N[i]]]], {len, 0}}, {i,
 If[Head[seg] === List, Union[{min, max}, seg], Range[min, max, seg]]}]]

И настройка:

Options[myTickGrid] = {UnitLabelShift -> 1.3, BottomLabelShift -> 0}
SetOptions[myTickGrid, UnitLabelShift -> 1.3, BottomLabelShift -> 0]

Пример:

Plot[Erfc[x], {x, -2, 2}, Frame -> True, 
 FrameTicks -> {myTickGrid[-2, 2, 1, "x", 0.02, UnitLabelShift -> 0], 
   myTickGrid[0, 2, {0.25, .5, 1, 1.8}, "Erfc(x)", 0.02]}]

enter image description here

4 голосов
/ 20 августа 2011

Вы можете найти пример здесь :

Ticks -> {{Pi, 2 Pi, 3 Pi}, {-1, 0, 1}}
3 голосов
/ 22 августа 2011

Ticks также принимает функцию, которая избавит вас от необходимости перечисления точек вручную или необходимости каждый раз менять максимальное значение. Вот пример:

xTickFunc[min_, max_] := 
 Table[{i, i, 0.02}, {i, Ceiling[min/Pi] Pi, Floor[max/Pi] Pi, Pi}]
Plot[Sinc[x], {x, -5 Pi, 5 Pi}, Ticks -> {xTickFunc, Automatic}, 
 PlotRange -> All]

enter image description here

Если вы хотите больше гибкости в настройке своих тиков, вы можете рассмотреть LevelScheme .

...