我希望制作一个带有对数y轴刻度的图,带有指数刻度线(例如10 ^ -1,10 ^ 0,10 ^ 1,10 ^ 2,...)。以下是一个例子:
LogPlot[{t, t^2, 1/t}, {t, 1, 250}, FrameLabel -> {t,y}, Ticks -> {{40, 80, 120, 160, 200, 240}, Table[{10^i, Superscript[10, i]}, {i, -2, 4}]}, PlotStyle -> {{Thick, Blue}, {Thick, Dashing[Large]}, {Black, Dotted}}]
此外,我还希望对情节有完整的框架。当我添加
Frame->True
然而,指数刻度线受到损害。这有什么解决方案吗?谢谢!
答案 0 :(得分:0)
使用Frame -> True
,您应该使用FrameTicks
代替Ticks
:
xticks = {40, 80, 120, 160, 200, 240};
yticks = Table[{10^i, Superscript[10, i]}, {i, -2, 4}];
LogPlot[{t, t^2, 1/t}, {t, 1, 250}, FrameLabel -> {t, y}, Frame -> True,
FrameTicks -> {{yticks, {#[[1]], ""} & /@ yticks}, {xticks, {#, ""} & /@ xticks}},
PlotStyle -> {{Thick, Blue}, {Thick, Dashing[Large]}, {Black, Dotted}}]