2017-04-07 86 views

回答

1
p = Plot[Sin[x], {x, 0, 6 Pi}, 
AxesStyle -> {Black, Opacity[0]}, 
TicksStyle -> Directive[Opacity[1], Black]] 

ticks = AbsoluteOptions[p, Ticks]; 

ticks[[1, 2, 2]] = DeleteCases[ticks[[1, 2, 2]], {_, "", __}]; 

ticks[[1, 2, 2, All, 3]] = ConstantArray[{0, 0}, 
    Length[ticks[[1, 2, 2, All, 3]]]]; 

ticks[[1, 2, 2, All, 2]] = Map[ToString, 
    ticks[[1, 2, 2, All, 2]]] /. a_String :> 
    If[StringTake[a, -1] == ".", a <> "0", a]; 

Plot[Sin[x], {x, 0, 6 Pi}, 
AxesStyle -> {Black, Directive[Opacity[0], Red]}, 
TicksStyle -> Directive[Opacity[1], Black], 
Ticks -> {Automatic, ticks[[1, 2, 2]]}] 

enter image description here

得到確切的原蜱你可以使用

Cases[Charting`FindTicks[{0, 1}, {0, 1}] @@ PlotRange[p][[2]], {_, _}] 

{{-1, -1.0},{ - 0.5,-0.5},{0,0},{0.5,0.5},{1.,1}}

如下實施:

p = Plot[Sin[x], {x, 0, 6 Pi}, 
    AxesStyle -> {Automatic, Opacity[0]}, 
    TicksStyle -> Opacity[1]]; 
ticks = AbsoluteOptions[p, Ticks]; 
onestyledtick = ticks[[1, 2, 2, 1]]; 
labels = Cases[Charting`FindTicks[{0, 1}, {0, 1}] @@ 
    PlotRange[p][[2]], {_, _}]; 
yticks = Map[Join[#, {{0, 0}}, 
    Take[onestyledtick, -1]] &, labels]; 
Plot[Sin[x], {x, 0, 6 Pi}, 
AxesStyle -> {Automatic, Opacity[0]}, 
TicksStyle -> Opacity[1], 
Ticks -> {Automatic, yticks}] 
+0

相關注意事項:https://mathematica.stackexchange.com/questions/97317/absoluteoptions-doesnt-return-correct-option-value-of-ticks –

+0

大 - 這肯定工作(很高興看到它不能做只是設置一個選項,當你使情節:-) –