You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab中bar(1:30)绘图横轴多余空白问题求助

解决Matlab bar图横轴多余空白的问题

这个问题我之前也碰到过,Matlab的bar图默认会在横轴两端留一点空白,目的是让图表看起来更舒展,但确实有时候我们需要把范围严格限制在数据对应的1到30区间内,同时保证所有条形都完整显示。这里有几种可行的解决办法:

方法1:手动设置横轴范围

直接用xlim函数指定横轴的起止范围,考虑到bar图默认的条形宽度(0.8),我们可以把范围设为从0.6到30.4,这样刚好能完整显示所有条形,且没有多余空白:

bar(1:30);
xlim([0.6 30.4]);

如果后续调整了条形宽度(比如通过bar(1:30, 'BarWidth', 0.9)),只需要对应调整xlim的数值即可。

方法2:自动适配条形宽度(更通用)

如果不想手动计算范围,可以通过获取bar对象的属性来自动设置,这种方法不管条形宽度怎么变都能适配:

h = bar(1:30);
% 获取条形宽度和数据的最小、最大值
bar_width = h.BarWidth;
min_x = min(h.XData);
max_x = max(h.XData);
% 设置横轴范围,刚好包含所有条形
xlim([min_x - bar_width/2, max_x + bar_width/2]);

方法3:快速收紧坐标轴(注意条形裁剪问题)

如果你不介意条形的边缘稍微被裁剪一点,可以直接用axis tight命令,它会把坐标轴范围严格设置为数据的范围:

bar(1:30);
axis tight;

不过这种方式下,第一个条形的左半部分和最后一个条形的右半部分会被坐标轴截断,所以更适合对条形完整性要求不高的场景。

内容的提问来源于stack exchange,提问作者MahD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:13:22