我打开一个对话框供用户选择参数,然后根据此参数创建图表。 用户可以从对话框中的列表中选择一个或多个参数,如果用户选择了多个参数,则所有图表将在同一图表中(每个图表的颜色不同)
现在我想根据用户选择为图表添加标题(例如,如果用户选择参数A,则标题应为:A,如果用户选择多个参数,则标题应为:A + B + ...) 可能吗?怎么样?
答案 0 :(得分:0)
以下是一些似乎可以完成你所追求的代码;我曾经想做类似的事情,它对我来说很好,希望它适合你。我发表了评论,因此应该很容易关注/复制您的应用程序。
clear
clc
%// Generate dummy data
x = 1:10;
y1 = 3*x-2;
y2 = x.^2/2;
y3 = x + rand(1,10);
%// Store data in a cell in a cell array. Easy to access in a loop.
DataCell = {y1;y2;y3};
%// Do the same for the plot properties, title and legend entries.
ColorCell = {'b';'--r';'+-g'};
LegendCell = {'Dataset 1';'Dataset 2';'Dataset 3'};
TitleCell = {'Dataset 1';'Dataset 2';'Dataset 3'};
%// Setup dialog box for data selection
SelectionString = {'y1' 'y2' 'y3'};
[selection,~] = listdlg('PromptString','Select data to plot','ListString',SelectionString);
TitleString = ''; %Initialize TitleString, which is updated in the loop.
%// Plot data
hold on
for k = selection
plot(x,DataCell{k},ColorCell{k})
TitleString = [TitleString '+' TitleCell{k}];
end
TitleString(1) = [];%// Remove the first character.
title(TitleString)
legend(LegendCell{selection},'location','best')
hold off
样本图:
希望有所帮助。