MATLAB:条形图\修改轴上的参数

MATLAB:条形图\修改轴上的参数,matlab,bar-chart,Matlab,Bar Chart,我有一个带有2个不同数据的条形图(如图所示,每个数据都有不同的颜色)。我想移动x轴,使其在y=-100处交叉(例如)。如果一个数据=-40,我想要一个从-100到-40的条 另一个问题:是否可以垂直写入x轴的每个值(因为对于所有值,我们看不到任何东西) 最后一个问题:x_轴是否可能有两种不同的刻度 提前谢谢大家, 致以最诚挚的问候,这里有一些代码可以帮助您继续前进。所有内容都有注释,以便易于理解: clear clc close all %// Generate dummy data y =

我有一个带有2个不同数据的条形图(如图所示,每个数据都有不同的颜色)。我想移动x轴,使其在y=-100处交叉(例如)。如果一个数据=-40,我想要一个从-100到-40的条

另一个问题:是否可以垂直写入x轴的每个值(因为对于所有值,我们看不到任何东西)

最后一个问题:x_轴是否可能有两种不同的刻度

提前谢谢大家,


致以最诚挚的问候,

这里有一些代码可以帮助您继续前进。所有内容都有注释,以便易于理解:

clear
clc
close all

%// Generate dummy data
y = -90*rand(1,20);
NumY = numel(y);

HalfData = round(NumY/2);

%// Loop to color half in pink and half in blue
hold all
for k = 1:NumY

    hBar = bar(k,y(k));

    if k <= HalfData
        set(hBar,'FaceColor',[1 0 1])

    else
        set(hBar,'FaceColor',[0 0 1])

    end
end
hold off

%// Get xtick labels and position for future use
xtLabels = cellstr(get(gca,'XTickLabel')).';
xtPos = get(gca,'XTick');

%// Change baseline value
set(hBar,'BaseValue',-40)

%// Get baseline to change its properties if you want
hBaseL = get(hBar,'Baseline');

set(hBaseL,'LineStyle','--','Color','k','LineWidth',3)

%// Adjust axis limits. Remove labels to place them vertically
set(gca,'XLim',[0 NumY],'XTickLabel',{''})

%// Get correct position for xlabel text
YLimPoArrays = min(get(gca,'YLim'));

YLimPoArrays = repmat(YLimPoArrays,numel(xtPos),1);

%// Place text positioned vertically with a small y offset
text(xtPos,YLimPoArrays-3,xtLabels,'HorizontalAlignment','center','Rotation',90,'FontSize',15)
清除
clc
全部关闭
%//生成虚拟数据
y=-90*兰特(1,20);
NumY=numel(y);
半数据=四舍五入(NumY/2);
%//循环为一半为粉红色,一半为蓝色
保留全部
对于k=1:NumY
hBar=bar(k,y(k));

如果k非常感谢你!一切都很完美!!伟大的如果这有帮助的话,你能把答案标记为已接受吗?(旁边的绿色复选标记)。谢谢