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が安全な値だと思いましたが、この場合はそうではありません.