gpt4 book ai didi

wolfram-mathematica - 如何在 BodePlot 上设置刻度?

转载 作者:行者123 更新时间:2023-12-04 00:13:55 25 4
gpt4 key购买 nike

我似乎无法在 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}
]

根据文档,所有绘图选项均可用于 BodePlot。

请注意,BodePlot 的刻度格式以 2 个列表的形式提供,而不是像普通绘图那样提供一个列表,因为会生成 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 的右侧和顶部使用 Automatic 而不是 None 似乎会导致 BodePlot 出现问题。我认为 automatic 是在有疑问时使用的安全值,但在这种情况下不是。

最佳答案

BodePlot 返回带有 Frames 的图片,而不是 Axes,所以使用 FrameTicks 而不是 Ticks

关于wolfram-mathematica - 如何在 BodePlot 上设置刻度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6795471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com