【问题标题】:Define dimensions of colorbar in matlab在matlab中定义颜色条的尺寸
【发布时间】:2012-11-30 15:28:25
【问题描述】:

我创建下图:

Naming = {'Name1','Name2','Name3','Name4','Name5','Name6'};

for i = 1:length(Naming);
    dat = 1+(30-1).*rand(365,5);
    time = datenum('2009-01-01','yyyy-mm-dd'):datenum('2009-12-31',...
        'yyyy-mm-dd');
    dept = 1:5;

    figure(1);
    ax = subplot(3,2,i);
    contourf(time,dept,dat',1:5:30);
    shading flat;
    title(Naming{i});
    datetick('x','mmm','keepticks');
    AX{i} = get(ax,'position'); 
end
h = axes('Position',[0 0 1 1],'Visible','off');
c = colorbar;
x = get(c,'Position');
x(1) = AX{end}(1)+AX{end}(3)+0.02;
x(2) = AX{end}(2);
x(3) = 0.02;
x(4) = AX{1}(2)+AX{1}(4);
set(c,'Position',x);

有没有更好的方法来定义颜色条的宽度和高度?目前颜色条位于正确的位置,但高度太大。

【问题讨论】:

    标签: matlab colorbar


    【解决方案1】:

    MathWorks 提供了一个solution 用于指定颜色条的宽度,这对我来说效果很好。

    这是来自链接网站的示例,其中颜色栏的宽度设置为 0.03

    pcolor(peaks);
    c=colorbar;
    x1=get(gca,'position');
    x=get(c,'Position');
    x(3)=0.03;
    set(c,'Position',x)
    set(gca,'position',x1)
    

    【讨论】:

    • 至少在我的情况下,如果你渲染几次,这会使情节缩小。
    • 我也尝试了这个解决方案,并且关联的绘图窗口会自动扩展到其原始尺寸并与我的情况下的颜色栏重叠。
    【解决方案2】:

    我认为你只需要减去底部轴的 y 位置:

    x(4) = AX{1}(2)+AX{1}(4)-AX{6}(2);
    

    至于更好的方法:在我看来你做得很好......你认为什么会“更好”?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-22
      • 1970-01-01
      • 1970-01-01
      • 2018-01-13
      • 1970-01-01
      • 1970-01-01
      • 2017-07-26
      • 2016-12-09
      相关资源
      最近更新 更多