【问题标题】:matlab surface plot - label colorbar and change axis valuesmatlab曲面图 - 标签颜色条并更改轴值
【发布时间】:2012-10-05 20:56:30
【问题描述】:

我正在尝试在 matlab 中使用颜色条绘制 3D 曲面图。

我想知道怎么做

  1. 标记颜色条的标题

  2. 更改轴刻度标签

我的代码的重要部分是

number_panels = 1:100:500;
number_turbines = 0;
number_batteries = 0:300:1700;

for idx_number_panels = 1:length(number_panels) 

for idx_number_turbines = 1:length(number_turbines) 

    for idx_number_batteries = 1:length(number_batteries) 

        for h=2:3 %# hours

A = squeeze(total_annual_cost)
B = squeeze(total_renewables_penetration)

figure;
surface(A,B)

我正在尝试将 x 和 y 轴刻度从 for 循环的间隔更改为代表每个间隔的实际数字。

我似乎在文档中找不到上述任何内容。

【问题讨论】:

    标签: matlab graph label geometry-surface


    【解决方案1】:

    以下代码显示了如何更改 Xticks、Yticks 以及为颜色条的值添加标签:

    clear all
    close all
    clc
    
    h = surface(peaks)
    colorbar('YTickLabel',...           % set labels to the colorbar
        {'Freezing','Cold','Cool','Neutral',...
         'Warm','Hot','Burning','Nuclear'})
    view(-35,45)
    
    number_panels = 0:5:50;
    number_batteries = 0:15:50;
    
    set(gca,'XTick',number_panels)      % set Xticks
    set(gca,'YTick',number_batteries )  % set Yticks
    grid on
    

    使用此代码,您可以更改第一个 YTickLabel 以设置颜色条标题(嗯,类似的东西):

    clear all
    close all
    clc
    
    number_panels = 0:5:50;
    number_batteries = 0:15:50;
    
    h = surface(peaks);
    chandle = colorbar;
    
    current_colorbar_labels = get(chandle,'YTickLabel');
    current_zticks = get(chandle,'YTick');
    aux = cellstr(current_colorbar_labels);
    aux{end} = 'Title';
    set(chandle,'YTickLabel',aux);
    view(-35,45)
    
    set(gca,'XTick',number_panels)      % set Xticks
    set(gca,'YTick',number_batteries )  % set Yticks
    set(gca,'ZTick',current_zticks )  % set Yticks
    grid on
    

    我的颜色条命令代码基于:http://www.mathworks.es/es/help/matlab/ref/colorbar.html

    希望这会有所帮助,我会尝试将标题添加到颜色栏...

    【讨论】:

    • 谢谢,但它似乎没有做我需要的。我已经设法整理出图表的图例。但是,我没有设法将 x 和 z 轴上的数字标记为我想要的数字,而不是我在 for 循环中拥有的数字
    • 另外,如何将图例值限制在 0 到 1 之间
    • 我没有设法将 x 和 z 轴上的数字标记为我想要的数字,而不是我在 for 循环中的数字 你应该可以做到这使用集合(gca,'XTick',my_desired_xvalues),带有'Xtick','Ytick','Ztick'。你告诉 matlab 你想要改变 set 命令的第三个参数的向量。 如何将图例值限制在 0 和 1 之间,颜色条的值取决于 z 轴的值。如果您希望 z 轴的值介于 0 和 1 之间,则应在绘图前转换数据(使其介于 0 和 1 之间)。
    猜你喜欢
    • 1970-01-01
    • 2022-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    相关资源
    最近更新 更多