【问题标题】:How to show the plotted histogram into axes in matlab GUI?如何在 matlab GUI 中将绘制的直方图显示为轴?
【发布时间】:2013-07-15 20:21:04
【问题描述】:

我想绘制直方图并将其显示到轴上。轴位于 uipanel 中。 如何在坐标区中显示直方图?

这是我的代码。它只是在新窗口中显示绘制的直方图。

fontSize = 20;
[pixelCount_Merah grayLevels_Merah] = imhist(Merah);
%subplot(2, 2, 2);
bar(pixelCount_Merah, 'r');
title('Histogram of Merah', 'Fontsize', fontSize);
 xlim([0 grayLevels_Merah(end)]); % Scale x axis manually.

有什么建议吗??

【问题讨论】:

    标签: matlab user-interface histogram axes


    【解决方案1】:

    在调用imhist 函数之前使用set(figure_handle,'CurrentAxes',axes_handle),其中figure_handle 是GUI 图形的句柄,axes_handle 是GUI 中轴的句柄。

    编辑 我去那里有点太快了。正如 Hugh Nolan 指出的那样,您需要轴句柄到您感兴趣的轴,然后只需使用正确的轴句柄调用 bar 函数即可,例如:

    bar(axes_handle,pixelCount_Merah, 'r');
    

    【讨论】:

      【解决方案2】:

      如果您在创建时返回轴句柄,如下所示:

      %... creating a uipanel somewhere here
      h = axes(); % make axes in uipanel
      

      然后就可以使用了

      axes(h);
      

      在使用 bar 绘制这些轴之前。

      如果您没有可用的坐标区句柄,可以使用findall 命令查找,只要您只创建了一组坐标区即可:

      h=findall(0,'type','axes');
      

      如果您的工作区中有一组以上的坐标轴,您可以尝试通过使用上述命令查找所有坐标轴进行过滤,然后查找其父级为 uipanel 的坐标轴。

      【讨论】: