【问题标题】:Using errorbar() with semilogy() in MATLAB?在 MATLAB 中使用 errorbar() 和 semilogy()?
【发布时间】:2011-04-02 18:57:17
【问题描述】:

我想在半对数图上绘制数据 x 和 y 与误差线 ebar 及其拟合 yfitted。这似乎不起作用:

figure;
hold on;
errorbar(x,y,ebar);
semilogy(x,yfitted);

我得到的是线性图,而不是半对数图。我应该做些什么不同的事情?

【问题讨论】:

    标签: math matlab plot graphing


    【解决方案1】:

    试试

    h = errorbar(x,y,ebar);
    set(get(h,'Parent'), 'YScale', 'log')
    

    或

    ax = axes();
    errorbar(ax, x,y,ebar);
    set(ax, 'YScale', 'log');
    

    【讨论】:

    • 某种作品,但它搞砸了所有的错误栏......例如它无法绘制一些垂直线
    • 您可能已经意识到,您不能记录 0 或负数
    【解决方案2】:

    这就是文档所说的。

    “如果您尝试将 loglog、semilogx 或 semilogy 图添加到线性轴模式图并保持不变,轴模式将保持不变,新数据将绘制为线性”

    我建议你只是颠倒你的绘图顺序,也就是说。

    semilogy(x,yfitted);
    hold on;
    errorbar(x,y,ebar);
    

    【讨论】:

    • 它应该可以工作。你在写>>图吗? >>坚持;在使用符号学之前?如果你这样做,它不会工作。只需在我的帖子中写三行,你就会得到与上面答案相同的结果。
    • 我在 2010a 上得到了这个解决方案,所以 +1,但直接设置轴属性比担心 matlab 使用 hold 命令冻结什么更直接和通用
    猜你喜欢
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    • 1970-01-01
    • 2016-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多