plotting a horizontal line at each data point
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
P Rakesh Kumar Dora
am 20 Apr. 2020
Kommentiert: Star Strider
am 21 Apr. 2020
How to plot a horizontal line at each co-ordinate.Here consider 1a,1b, 1c etc as horizontal points, energy values as vertical points.Also how to indicate which color is used for which.pls help.

1 Kommentar
Ilian
am 20 Apr. 2020
This is not an elegant solution but you can probably solve this with a loop and line()
Akzeptierte Antwort
Star Strider
am 20 Apr. 2020
Try this:
x = 1:10; % Create Data
yh = rand(size(x))-2; % Create Data
yl = rand(size(x))-4; % Create Data
hl = @(x,y,l,c) plot(x+[-l l], y*[1 1],c); % Anonymous Function To Draw Horizontal Lines
figure
hold on
for k = 1:numel(x)
hl(x(k),yh(k),0.5,'b')
hl(x(k),yl(k),0.5,'r')
text(x(k),yh(k), sprintf('%5.2f',yh(k)), 'VerticalAlignment','bottom', 'HorizontalAlignment','center')
text(x(k),yl(k), sprintf('%5.2f',yl(k)), 'VerticalAlignment','top', 'HorizontalAlignment','center')
text(x(k),yh(k),'\uparrow', 'VerticalAlignment','top', 'HorizontalAlignment','center')
text(x(k),yl(k),'\downarrow', 'VerticalAlignment','bottom', 'HorizontalAlignment','center')
text(x(k), mean([yh(k) yl(k)]), sprintf('%5.2f',(yh(k)-yl(k))), 'VerticalAlignment','middle', 'HorizontalAlignment','center')
plot([1 1]*x(k),[yl(k) yh(k)+sign(yh(k))*0.1], '-k', 'LineWidth',0.5)
end
yl = ylim;
ylim(yl+[-1 1]*0.2)
.
10 Kommentare
Weitere Antworten (1)
Siehe auch
Kategorien
Mehr zu Line Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

