2017-04-07 3 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.0}}

ここで実装として:

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

グレート - この間違いなく動作します(そして、プロットするときにオプションを設定するだけで済ませられないことを知ってうれしいです:-) –

関連する問題