Как установить галочки на BodePlot? - PullRequest
3 голосов
/ 23 июля 2011

Я не могу изменить тики на BodePlot в Mathematica 8.

Clear[z]
hz = z/(z - 0.4) (*make up some transfer function *)
ts = 1;
tf = TransferFunctionModel[hz, z, SamplingPeriod -> ts];
scale = {{"Linear", "dB"}, Automatic};

BodePlot[tf,
 PlotRange -> Automatic,
 ImageSize -> 300,
 ScalingFunctions -> scale,
 Ticks -> {{{0, Pi/4, Pi/2, 3/4 Pi, Pi}, Automatic}, Automatic}
 ]

В соответствии с документацией, все параметры Plot могут использоваться для BodePlot.

Примечаниеформат для Ticks для BodePlot поставляется в виде 2 списков, а не одного как обычного графика, так как генерируется 2 графика.Выше я пытаюсь изменить тики оси X для первого графика (график величины).

Вопрос: Как изменить тики на BodePlot?Я делаю ошибку в приведенном выше вызове?

спасибо

EDIT 1

Теперь с помощью FrameTicks, и я обнаружил действительно странное поведение.Если я использую Automatic для любого из тиков для правой или верхней сторон фрейма, я получаю ошибки ядра в консоли.Вот пример

Clear[z]
hz = z/(z - 0.4)
tf = TransferFunctionModel[hz, z, SamplingPeriod -> 1];

BodePlot[tf,
 FrameTicks -> 
     {
     {{Automatic, Automatic}, {Automatic, None}}, 
     {{Automatic, None}, {Automatic, None}}
     }
 ]

Выше приведены сообщения об ошибках ядра на консоли.Странно, если я снова запускаю ту же команду, я больше не вижу ошибок на консоли.

Измените вышеприведенное на следующее, и ошибки исчезнут:

Clear[z]
hz = z/(z - 0.4)
tf = TransferFunctionModel[hz, z, SamplingPeriod -> 1];

BodePlot[tf,
 FrameTicks -> 
    {
     {{Automatic, None}, {Automatic, None}}, 
     {{Automatic, None}, {Automatic, None}}
    }
 ]

И когда я использую это, я не получаю ошибки:

Clear[z]
hz = z/(z - 0.4)
tf = TransferFunctionModel[hz, z, SamplingPeriod -> 1];

BodePlot[tf,
 FrameTicks -> {{Automatic, Automatic}, {Automatic, Automatic}}
 ]

Так, кажется, использование Automatic вместо None для правой стороны, а верхняя сторона в FrameTicks вызывает проблему для BodePlot.Я думал, что автоматическое значение было безопасным для использования в случае сомнений, но не в этом случае.

1 Ответ

4 голосов
/ 23 июля 2011

BodePlot возвращает изображения с Frames вместо Axes, поэтому используйте FrameTicks вместо Ticks.

...