Wolfram mathematica 如何选择mathemetica中绘图轴上显示的数字?

Wolfram mathematica 如何选择mathemetica中绘图轴上显示的数字?,wolfram-mathematica,plot,Wolfram Mathematica,Plot,我已经检查了Mathematica文档中心的所有示例和设置,但是找不到任何关于如何选择轴上显示的数字的示例 如何更改绘图轴编号,如2,4,6,。。对于PI,2PI,3PI,…?您可以找到一个示例: Howard已经给出了正确答案,如果您希望标签Pi,2pi等的值为Pi,2pi等 有时,您可能希望在特定值处使用替换记号标签,而无需重新缩放数据 文档中的另一个示例说明了如何: Plot[Sin[x], {x, 0, 10}, Ticks -> {{{Pi, 180 \[Degree]},

我已经检查了Mathematica文档中心的所有示例和设置,但是找不到任何关于如何选择轴上显示的数字的示例

如何更改绘图轴编号,如2,4,6,。。对于PI,2PI,3PI,…?

您可以找到一个示例:


Howard已经给出了正确答案,如果您希望标签
Pi
2pi
等的值为
Pi
2pi

有时,您可能希望在特定值处使用替换记号标签,而无需重新缩放数据

文档中的另一个示例说明了如何:

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

我有一套小的自定义函数,用于按我想要的方式格式化
记号。如果您刚刚开始,这可能是太多的信息,但值得知道的是,如果需要,您可以使用任何数字格式,并将任何内容替换为记号

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]}]

滴答声
也接受一个函数,这将省去手动列出点或每次更改最大值的麻烦。下面是一个例子:

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]


如果您想在定制滴答声时有更大的灵活性,您可能需要研究一下。

这是否能够生成PI,2PI,。。。自动不指定总数?谢谢~这将自动生成刻度,但您仍需要指定最大x值:xmax=10;Plot[Sin[x],{x,0,xmax},Ticks->{Pi*Range[xmax/Pi],{-1,1}]你可能会发现这篇相关的博客文章很有用(下半部分是关于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]