【问题标题】:(Updated - new issue) - Matlab - Displaying bar graph in GUIDE GUI Issue(更新 - 新问题) - Matlab - 在 GUIDE GUI 问题中显示条形图
【发布时间】:2015-05-20 01:48:47
【问题描述】:

这是我想在 GUIDE GUI 上显示的条形图。我将此代码放入 GUIDE GUI 的 OpeningFcn 函数中,实际上发生的情况是图形专用的实际框部分(其标记为“axes1”)出现在 GUI 窗口中,但随后出现另一个图形窗口,显示条形图.我将如何将此条形图放入专用于 box axes1 的空间中的 GUIDE GUI 中?

我不需要任何按钮触发器来显示它。当 GUI 窗口打开时,图形应出现在 GUIDE GUI 上的专用位置。

编辑:这是我要显示的图形数据。我以上一个为例,所以我可以从中学习。但是,由于某种原因,下图在窗口中出现了两次问题 - 它出现一次,关闭,然后再次出现。我将如何解决它,使其只出现一次?所有这些都在OpeningFcn下,我在CreateFcn下没有额外的代码。

dbedit = matfile('varDatabase.mat', 'Writable', true);
results_pData = dbedit.pData;
results_uData = dbedit.uData;
results_name = dbedit.name;

% Create data for each set of bars for data from each group 
% i.e. [participant, population].
% Population is defined as the previous user data stored in its full in uData. 
expSingle = [((results_pData(1,2)/7)*100), ((mean(results_uData(:,2))/7)*100)];
expConjugate = [((results_pData(1,3)/7)*100), ((mean(results_uData(:,3))/7)*100)];
ctlSingle = [((results_pData(1,4)/7)*100), ((mean(results_uData(:,4))/7)*100)];
ctlConjugate = [((results_pData(1,5)/7)*100), ((mean(results_uData(:,5))/7)*100)];

% Create a vertical bar chart using the bar function
bar(handles.axes1,1:2, [expSingle' expConjugate' ctlSingle' ctlConjugate'], 1)

% Set the axis limits
axis([0 2.8 0 100])
set(gca,'XTickLabel',{results_name,'Population'})

% Add title and axis labels
title('Proportion of Responses for Conjunctive vs. Single Choices')
xlabel('Entity')
ylabel('Proportion of Responses (%)')

% Add a legend
legend('Single Choice, Experimental', 'Conjugative Choice, Experimental',...
'Single Choice, Control', 'Conjugative Choice, Control')

输入将不胜感激。

【问题讨论】:

    标签: matlab user-interface graph matlab-guide


    【解决方案1】:

    这是因为您在创建数据后立即调用 figure ,这确实在您的 GUI 之外创建了一个新图形。

    要解决您的问题,请删除该行,并考虑在对 bar 的调用中添加实际轴句柄:

    bar(handles.axes1,1:12, [measles' mumps' chickenPox'], 1)
    

    因此,您的整个代码可能如下所示:

    %Create data for childhood disease cases
    measles = [38556 24472 14556 18060 19549 8122 28541 7880 3283 4135 7953 1884];
    mumps = [20178 23536 34561 37395 36072 32237 18597 9408 6005 6268 8963 13882];
    chickenPox = [37140 32169 37533 39103 33244 23269 16737 5411 3435 6052 12825 23332];
    
    %Create a vertical bar chart using the bar function 
    
    %// Remove the call to figure.
    bar(handles.axes1,1:12, [measles' mumps' chickenPox'], 1)
    
    % Set the axis limits
    axis([0 13 0 40000])
    set(gca, 'XTick', 1:12)
    
    % Add title and axis labels
    title('Childhood diseases by month')
    xlabel('Month')
    ylabel('Cases (in thousands)')
    
    % Add a legend
    
    legend('Measles', 'Mumps', 'Chicken pox')
    

    现在应该可以了

    【讨论】:

    • 现在的问题是图形出现一次,消失,然后再次出现(好像打开了 2 个窗口)。我在 CreateFcn 下没有代码,以上代码都在 OpenFcn 中。我该如何解决?
    • 我很抱歉我应该发布我一开始的原始代码。它现在已更新,现在我遇到了图表出现一次、消失然后再次出现的问题(好像打开了 2 个窗口)。我将如何修复它以便只出现 1 并保持到关闭?
    • 我不明白这个答案是否解决了原来的问题?我不明白你怎么会用上面的代码让数字出现和消失。
    • 我重新检查了,结果证明它正在工作。问题是这个数字太小了,所以它下面的按钮出现在一个单独的屏幕上。感谢您的帮助。
    • 太棒了,很高兴能提供帮助!
    猜你喜欢
    • 2010-10-21
    • 2019-08-24
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多