我已经检查过Mathematica文档中心的所有示例和设置,但找不到任何关于如何选择将在轴上显示的数字的示例。
如何将绘图轴编号如2,4,6,..更改为PI,2PI,3PI,......?
答案 0 :(得分:8)
如果您希望标签 Pi
,2 Pi
等位于值 {,霍华德已经给出了正确的答案{1}},Pi
等。
有时您可能希望在特定值处使用替代刻度标签,而无需重新调整数据。
文档中的其他示例之一显示了:
2 Pi
我有一套小的自定义函数,用于按照我想要的方式格式化Plot[Sin[x], {x, 0, 10},
Ticks -> {{{Pi, 180 \[Degree]}, {2 Pi, 360 \[Degree]}, {3 Pi,
540 \[Degree]}}, {-1, 1}}]
。如果您刚刚开始,这可能是太多的信息,但值得知道您可以使用任何数字格式并在需要时将任何内容替换为您的刻度。
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]
答案 1 :(得分:4)
您可以找到示例here:
Ticks -> {{Pi, 2 Pi, 3 Pi}, {-1, 0, 1}}
答案 2 :(得分:3)
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]
如果您想要更灵活地自定义刻度线,可能需要查看LevelScheme。