How to plot overlapping lines while esnuring both remain visible?
조회 수: 96 (최근 30일)
이전 댓글 표시
Hello All, I am having trouble plotting overlapping lines. Consider the code snippet below where I plot the pressure through 5 pipes over 5 time steps. The problem arises when I have two pipes with same pressure and the pressure lines overlap each other. Any help as to how can I best differntiate between them while also ensuring that they are both displayed?
% Code Snippet
t_vect= linspace(1,5,5) % time step vector
P_time = rand(5) %Random pressure values for 5 pipes
P_time(:,2:3) = 0.5; %Assigning same arbitrary values to two pipes (2 and 3)
plot(t_vect,P_time,'--o') % Plotting the pressure in 5 pipes against t_vect
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/190570/image.bmp)
And as you can see in the picture there is no way one can distinguish between pressures in pipes 2 and 3. But here comes my major concern, the number of pipes in my case are not constant and neither are the number of pipes with same pressure values (possibility of more than 2 lines overlapping), so is there a way this could be automated?
댓글 수: 2
채택된 답변
Star Strider
2018년 5월 15일
I would plot ‘pipe 3’ (or whatever one is plotted later) with a larger line width, or plot ‘pipe 2’ (if plotted first) as a solid line.
댓글 수: 4
추가 답변 (1개)
Jan
2018년 5월 15일
% The actual data:
t = 0:5;
x1 = zeros(size(t));
x2 = zeros(size(t));
tt = linspace(0, 5, 20);
x1t = interp1(t, x1, tt);
x2t = interp1(t, x2, tt);
plot(tt, x1t, '--o', 'MarkerIndices', 1:5:length(tt));
plot(tt, x2t, '--o', 'MarkerIndices', 3:5:length(tt));
Well, I'm not convinced that this is nice. It is not trivial to do this automatically using an optimal distance between the markers of overlapping lines. But you have at least a method, to detect such identical curves.
참고 항목
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!