我需要用我的数据制作堆积条形图,如下所示:Graph1
我的数据集:
data1 = [0 0 3.16 25.08 46.87 57.97 39.25 28.81 10.63 0.06 0 0]
data2 = [74.00 152.68 319.99 514.05 635.73 647.61 645.32 569.51 398.48 226.13 84.88 52.08]
data3 = [628.07 497.66 426.97 285.56 220.67 184.04 212.71 239.93 318.25 451.61 545.02 626.39]
如果我这样做:
x = 1:12;
y = [data2' data1' data3'];
bar(handles.axes1,x,y,'stacked')
它看起来像这样:Graph2
所以我需要绿色部分就像第一个图上的负值(蓝色值)
如果我在经典工作区中这样做:
x = 1:12;
y1 = [data2' data3'];
bar(x,y1,'stacked')
hold on
bar(x, -data1, 'g')
hold off
它看起来像我想要的,但是如果我在GUI中这样操作
x = 1:12;
y1 = [data2' data3'];
bar(handles.axes1,x,y1,'stacked')
hold on
bar(handles.axes1,x, -data1, 'g')
hold off
仅绘制负值。谢谢你的建议。
您所需要的只是指定您正在操作的句柄 hold
clear;clc;close all
data1 = [0 0 3.16 25.08 46.87 57.97 39.25 28.81 10.63 0.06 0 0]
data2 = [74.00 152.68 319.99 514.05 635.73 647.61 645.32 569.51 398.48 226.13 84.88 52.08]
data3 = [628.07 497.66 426.97 285.56 220.67 184.04 212.71 239.93 318.25 451.61 545.02 626.39]
x = 1:12;
y1 = [data2' data3'];
ax = axes;
figure % some other figures that interferes gcf()
bar(ax,x,y1,'stacked')
hold(ax,'on')
bar(ax,x, -data1, 'g')
hold(ax,'off')
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句