Я использую Matlab 2019a и хочу построить гистограмму положительных и отрицательных векторов, положительных выше и отрицательных векторов ниже оси x. Следующий код работает нормально, за исключением ...
а) цвета и легенды. Я хочу иметь одинаковые цвета и соответствующие записи легенды для каждого дохода и вектора операционных расходов.
б) Я хочу, чтобы те векторы, которые в основном были отрицательными (в данном случае opex), были ближе к оси x, когда они положительны, чем те, которые в основном положительные (в этом случае доход). То есть всегда доход выше операционного в положительной части сюжета.
Я хотел бы написать это эффективным способом, чтобы я мог обобщить его для большего числа векторов. Спасибо!
clc
clear
close all
revenue = ones(100,1);
opex = -1*ones(100,1);
opex(10:15,1) = 3;
revenueNeg = revenue;
revenueNeg(revenueNeg>0) = 0;
revenuePos = revenue;
revenuePos(revenuePos<0) = 0;
opexNeg = opex;
opexNeg(opexNeg>0) = 0;
opexPos = opex;
opexPos(opexPos<0) = 0;
yDataNeg = [revenueNeg, opexNeg];
yDataPos = [revenuePos, opexPos];
hold on;
bar(yDataNeg,'stack')
bar(yDataPos,'stack')
legend('Revenue','Opex');
hold off;