如何根据Matlab中的用户选择为图形添加标题

时间:2014-11-20 13:07:30

标签: matlab graph title

我打开一个对话框供用户选择参数,然后根据此参数创建图表。 用户可以从对话框中的列表中选择一个或多个参数,如果用户选择了多个参数,则所有图表将在同一图表中(每个图表的颜色不同)

现在我想根据用户选择为图表添加标题(例如,如果用户选择参数A,则标题应为:A,如果用户选择多个参数,则标题应为:A + B + ...) 可能吗?怎么样?

1 个答案:

答案 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

样本图:

enter image description here

希望有所帮助。