这是我想在GUIDE GUI上显示的条形图。我将此代码放入GUIDE GUI的OpeningFcn函数中,实际发生的是,专用于图形的实际框部分(标记为" axes1")出现在GUI窗口中,但随后出现在另一个图形窗口中出现显示条形图。如何将此条形图放入专用于方框轴1的空间中的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')
输入将不胜感激。
答案 0 :(得分:0)
这是因为您在创建数据后立即调用了数字,这确实会在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')
现在应该可以使用