我在Mathematica中有一个绘图,问题是:绘图的轴数相互干扰。如何消除中间数字,例如“ 5 * 10 ^ 12,5 * 10 ^ 13,...”并保留主要数字“ 1 * 10 ^ 12,1 * 10 ^ 13,...” 。还有其他解决方法吗?
答案 0 :(得分:0)
使用一个简单的示例,刻度可以像这样固定。引用来自here和here的代码。
首先,显示标签重叠的情况。
f[x_] := x^2 + x^3
{min, max} = {10^-12, 10^-10};
LogLogPlot[f[x], {x, min, max}, Frame -> True,
BaseStyle -> 18, FrameLabel -> {"X", "Y"}]
删除备用标签。
xticks = Charting`ScaledTicks[{Log, Exp}][Log[min], Log[max]];
xticks[[All, 1]] = Exp@xticks[[All, 1]];
xticks[[All, 2]] = ReplacePart[xticks[[All, 2]],
Thread[Select[Range@Length@xticks, EvenQ] -> Spacer[{0, 0}]]];
LogLogPlot[f[x], {x, min, max}, Frame -> True,
FrameTicks -> {Automatic, {xticks, Automatic}},
BaseStyle -> 18, FrameLabel -> {"X", "Y"}]
答案 1 :(得分:0)
另一种选择是保留所有刻度线标签并旋转它们:
xticks = Charting`ScaledTicks[{Log, Exp}][Log[min], Log[max]];
xticks[[All, 1]] = Exp@xticks[[All, 1]];
xticks[[All, 2]] = Rotate[#, Pi/2] & /@ xticks[[All, 2]];
LogLogPlot[f[x], {x, min, max}, Frame -> True,
FrameTicks -> {Automatic, {xticks, Automatic}}, BaseStyle -> 18,
FrameLabel -> {"X", "Y"}]