3

Mathematica 8 で BodePlot のティックを変更できないようです。

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 に使用できます。

2 つのプロットが生成されるため、BodePlot の Ticks の形式は、通常のプロットではなく 2 つのリストとして提供されることに注意してください。上記では、最初のプロット (マグニチュード プロット) の x 軸の目盛りを変更しようとしています。

問題は、BodePlot でティックを変更する方法です。上記の呼び出しでエラーが発生していますか?

ありがとう

編集1

現在 FrameTicks を使用しており、非常に奇妙な動作を発見しました。フレームの右側または上部の目盛りに自動を使用すると、コンソールにカーネル エラーが表示されます。ここに例があります

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}}
 ]

そのため、FrameTicks の右側と上部に None ではなく Automatic を使用すると、BodePlot で問題が発生するようです。疑わしい場合はautomaticが安全な値だと思いましたが、この場合はそうではありません.

4

1 に答える 1

4

BodePlotFramesではなくを含む画像を返すので、ではなくAxesを使用してください。FrameTicksTicks

于 2011-07-22T20:21:22.567 に答える