【问题标题】:Plot bar in matlab with log-scale x axis and same width在matlab中绘制具有对数刻度x轴和相同宽度的条形图
【发布时间】:2026-02-17 19:45:01
【问题描述】:

我想在 Matlab 中绘制一个条形图,其中 (1) x 轴的对数刻度和 (2) 相同宽度的条形图。但是使用下面的代码,条的宽度是不同的。任何人都可以帮忙吗?非常感谢!

    xdata = [0.01 0.018 0.032 0.056 0.1 0.18 0.32 0.56 1 1.8 3.2 5.6 10];
    ydata = [1.3 1.6 1.5 1.2 1.0 3.5 0.6 3.1 1.6 1.9 1.7 0.3 0.4];
    bar(xdata,ydata);
    set(gca,'XScale','log');

【问题讨论】:

    标签: matlab plot


    【解决方案1】:

    不是在对数刻度上绘制xdata,而是在线性刻度上绘制xdata 的对数。然后修改标签以反映线性值(不是使用的对数值)。

    xdata = [0.01 0.018 0.032 0.056 0.1 0.18 0.32 0.56 1 1.8 3.2 5.6 10];
    ydata = [1.3 1.6 1.5 1.2 1.0 3.5 0.6 3.1 1.6 1.9 1.7 0.3 0.4];
    bar(log10(xdata),ydata);
    set(gca,'Xtick',-3:1); %// adjust manually; values in log scale
    set(gca,'Xticklabel',10.^get(gca,'Xtick')); %// use labels with linear values
    

    【讨论】:

    • 谢谢!这正是我想要的。
    • 真的很聪明:)
    最近更新 更多