我想创建一个带有指定宽度条形的条形图。我已经尝试了很多,但到目前为止没有任何对我有用。
x
的每个元素都是区间的中心。我希望每个条的中心位于该位置,并且该条的宽度应对应于间隔的长度。 y
包含每个条形的高度。我的目标是获得一个条形图,其条形宽度不同。
% inter contains the limits of my intervals
inter = [-32.6;-31.3;-20.3;-19.0;-15.4;-14.1;-11.7;-10.4;-8.8];
x = [ -31.6000; -19.8000; -17.4000; -13.1500; -10.5000; -8.8000];
y = [ 2.3529; 1.0417; 1.3158; 1.5337; 2.5000; 1.0152];
% trying to create the bar plot, however, all widths are the same:
bar(x,y);
答案 0 :(得分:3)
您可以使用patch
自行绘制每个条形图。我们可以使用inter(k)
作为左侧,inter(k + 1)
作为每个条形k
的右边缘,我们已知的高度为y(k)
。
figure;
for k = 1 : length(y)
xl = inter(k);
xr = inter(k + 1);
patch([xr, xr, xl, xl], [0, y(k), y(k) 0], 'b');
end
事实证明,你甚至不需要向量x
。