gname for labelling lines in a plot

I want to use gname() to identify the lines of a plot with multiple lines.
I am trying to do it like this:
timeseries = rand(100,3); plot(timeseries); gname({'a','b','c'});
which doesn't work.
If I invert the matrix I can use gname() for labelling, however the plot is obscured:
timeseries = rand(100,3); plot(timeseries'); gname({'a','b','c'})
Would be nice if that could work somehow, I would like to plot hundreds of timeseries in one plot, but the colour labelling doesnt really help to identify them.

 採用された回答

Kelly Kearney
Kelly Kearney 2015 年 9 月 23 日

0 投票

Maybe setting the ButtonDownFcn of each line to display the name somewhere would work? In this example, I change the axis title:
hax = axes;
changetext = @(str) title(hax, str);
hln = plot(1:3, rand(3,100));
for ii = 1:100
hln(ii).ButtonDownFcn = @(~,~) changetext(num2str(ii));
end

3 件のコメント

Felix
Felix 2015 年 9 月 24 日
I would be also glad to set the ButtonDownFcn! However, When I try your code I get an Error:
Structure assignment to non-structure object.
I am running Matlab2014a on Mac os 10.10
Kelly Kearney
Kelly Kearney 2015 年 9 月 24 日
For that version, replace
hln(ii).ButtonDownFcn = @(~,~) changetext(num2str(ii));
with
set(hln(ii), 'ButtonDownFcn', @(~,~) changetext(num2str(ii)));
Felix
Felix 2015 年 9 月 25 日
Thank you! It works. For some reason the Axes have a second label from 0.0 to 1.0 overaying the original label.
I also tested your solution on Windows with Matlab 2014b. And there it works perfectly

サインインしてコメントする。

その他の回答 (1 件)

Thorsten
Thorsten 2015 年 9 月 23 日

0 投票

legend({'a', 'b', 'c', 'd'})

1 件のコメント

Felix
Felix 2015 年 9 月 23 日
I would like to have an "interactive" solution where I can click on the lines to identify them. When I have 100s of timeseries one plot the Legend becomes useless. Thanks for your comment though

サインインしてコメントする。

製品

タグ

質問済み:

2015 年 9 月 23 日

コメント済み:

2015 年 9 月 25 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by