FindDivisions [] не работает, как указано

FindDivisions [] был добавлен в Mma v7 и кажется хорошим способом получить гибкие отметки для графиков. См., Например, этот вопрос и его ответы.

Пример использования:

f[fd_] := Join[
   {#, #, {.07, 0}, Directive[Black, Thickness[.01]]} & /@ fd[[1]],
   {#, #, {.05, 0}, Directive[Black, Thin]}           & /@ Flatten[fd[[2]]]];
plot[pr_List] :=  
     Plot[Sin[x], Evaluate@Join[{x}, pr], Ticks -> {f[FindDivisions[pr, {2,5}]]}]

plot[{0, 10}]

enter image description here

И вроде все верно.
Но есть глюк:

f[fd_] := Join[
   {#, #, {.03, 0}, Directive[Red, Thickness[.01]]} & /@  fd[[1]], 
   {#, #, {.05, 0}, Directive[Black, Thin]}         & /@  Flatten[fd[[2]]]];
plot[pr_List] :=
  Plot[Sin[x], Evaluate@Join[{x}, pr], Ticks -> {f[FindDivisions[pr, {2,5}]]}]
plot[{0, 10}]

enter image description here

Как видите, красная и черная галочки накладываются друг на друга. Это потому, что

FindDivisions[{0, 2}, {2, 4}]
(*
-> {{0, 1, 2}, {{0, 1/4, 1/2, 3/4, 1}, {1, 5/4, 3/2, 7/4, 2}}}
*)

и вы можете видеть, что числа в первом списке (основные отметки) повторяются во втором списке.
Однако в документации FindDivisions [] говорится:

enter image description here

Итак, два вопроса:

  1. Это ошибка, или я делаю (или понимаю) что-то не так?
  2. Любой простой способ удаления повторяющиеся тики в многоуровневой структуре?

6
задан Community 23 May 2017 в 12:01
поделиться