Issue with inconsistent colorbar label position (2014b)
조회 수: 1 (최근 30일)
이전 댓글 표시
Hi all,
I've been setting up a 4-subplot graph with colorbars on their outsides. For readability/symmetry I've been messing around with the label position so that it's actually defined as equal (relative to the colorbar) in all 4 in the code. However, for some reason in my bottom left subplot (3) the x position of the colorbar label is significantly more left (negative) than in the top left subplot (1). As far as I know I'm setting the values of the label position equal between subplot 3 and subplot 1. (It works for subplots 2 and 4 (not included in the code below for brevity), in which I set the c.Label.Position to [-c_titlepos(1) c_titlepos(2) c_titlepos(3)] and in both subplots the label is at the expected (and identical) position relative to the colorbar (though flipped, of course))
I'm a bit at a loss; maybe there's some way that c.Label.Position treats inputs that I'm missing. Would appreciate any help!
(Note: the resulting figure looks v jank with the colorbars bleeding over the figures, but the problem I'm looking at should be illustrated - with the second colorbar label almost off the screen to the left)
figure1 = figure;
ColorLabel = 'units go here';
%First subplot
subplot1 = subplot('position',[0.06,0.55,0.44,0.4],'Visible','off','Parent',figure1);
sub1data = rand(100); %some data
pcolor(sub1data)
c=colorbar('peer',subplot1,'location','westoutside');
c.Position = [0.06 0.568 0.0165 0.365];
c.Label.String=ColorLabel;
c.Label.Units = 'normalized'; %setting units so they're general b/w subplots
c_titlepos = c.Label.Position; %saving the (relative) position of the label
%2nd/4th subplot taken out for clarity's sake
%Third subplot
subplot3 = subplot('position',[0.06,0.10,0.44,0.4],'Visible','off','Parent',figure1);
sub2data = rand(100);
pcolor(sub2data)
c=colorbar('peer',subplot3,'location','westoutside');
c.Position = [0.06 0.118 0.0165 0.365]; %x position/x size same as colorbar above)
c.Label.String=ColorLabel;
c.Label.Units = 'normalized'; %make sure units are same
c.Label.Position = [c_titlepos(1) c_titlepos(2) c_titlepos(3)]; %just replicating the position from subplot1
댓글 수: 0
답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Axis Labels에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!