display legends with different line styles in matlab

32 Ansichten (letzte 30 Tage)
user1234
user1234 am 7 Mai 2017
Kommentiert: Samuel Suakye am 24 Okt. 2022
How one can draw a graph with different line styles corresponding to different legends? For instance, my data is 5 by 4 as follows:
__________________________________________________
A B C D
__________________________________________________
0.84702 0.64419 0.61728 0.48538
0.76445 0.1864 0.39728 0.15959
0.04743 0.0412 0.09432 0.86721
0.4256 0.1458 0.05432 0.803192
0.9855 0.8242 0.5679 0.7102
___________________________________________________
So far I tried the following, first I saved this data file as 'myData.m'. Next, I load it on my Matlab window using the command 'load myData.m'. Then after, I have used the followig codes:
[n,p] = size(myData);
t = 1:n;
plot(t,myData)
legend('A','B','C','D','Location','NorthEast')
xlabel('Time'); ylabel('Value');
How can I display legends with different line styles((like '-','.-','.' and '--')) along with different colours using Matlab?

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 7 Mai 2017
If you plot() one line at a time, then you can usually pass a linespec to the plotting routines; sometimes you need to pass a 'LineStyle' name/value pair.
If you are plot()'ing with four different X, Y pairs, then you can put a linespec after each one:
plot(x1, y1, '-', x2, y2, '.', x3, y3, '--', x4, y4, '.-')
If you are plotting with four columns in your Y, then you need to record the line handles and set their LineStyle property:
h = plot(x, Y_by_4);
set(h(1), 'LineStyle', '-');
set(h(2), 'LineStyle', '.');
etc
  2 Kommentare
user1234
user1234 am 7 Mai 2017
@Walter Roberson Thanks! I edited it now. Still I couldn't manage the error.
Walter Roberson
Walter Roberson am 7 Mai 2017
Replace
[n,p] = size(myData);
t = 1:n;
plot(t,myData)
with
h = plot(myData);
set(h(1), 'LineStyle', '-');
set(h(2), 'LineStyle', ':');
set(h(3), 'LineStyle', '--');
set(h(4), 'LineStyle', '-.');
Note: these are the only four valid line styles (other than 'none')

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Samuel Suakye
Samuel Suakye am 23 Okt. 2022
col = [0,0,1;0.9,0.4,0.17;0,1,0]; % Blue, Orange, Green How do I change this to linestyle
  8 Kommentare
Walter Roberson
Walter Roberson am 24 Okt. 2022
Change
col = [0,0,1;0.9,0.4,0.17;0,1,0]; % Blue, Orange, Green
to
col = {'-', ':', '--'};
Change
plot(linAx,W*1e-12,JxL*1e13,'color',col(i,:))
to
plot(linAx,W*1e-12,JxL*1e13, col{i});

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Line Plots finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by