MATLAB Answers

0

Deleting overlapping lines in a plot

Asked by Hans Sunaryanto on 19 Aug 2019
Latest activity Commented on by Chris
on 23 Aug 2019
Hi all,
I have a .fig file that is made up of red and black lines and I want to be able to export this as .pdf. Plot twist: Each of the red lines shown here has an underlying black line that I want to just get rid of, so it results in only purely-black and purely-red lines. Any idea how to solve this?
Thanks!

  1 Comment

darova
on 19 Aug 2019
Do you have a source where those curves come from? A script?

Sign in to comment.

1 Answer

Answer by Chris
on 19 Aug 2019
 Accepted Answer

.fig files retain Children information of the figure; you can loop over the Children and delete based on color.

  5 Comments

darova
on 21 Aug 2019
Chris, is it answers your question?
Hi Chris,
The function you gave me would delete all of the black lines I have in my figure. This isn't exactly what I was looking for, since I want to only delete the black lines that are precisely located under the red ones. Do you have any idea how we can incorporate this function (or another function) to solve it?
Thanks!
Chris
on 23 Aug 2019
You will need to then loop over all combinations of red and black lines testing for pairs.
The pair test: If the end points of the overlapping lines are coincident you can do a distance test on each end. Else you can try using polyfit to determine if the two lines have the same slope and y-intercept.
Or if you have a small number of plots and lines you can loop over each black line, make the line a new color and used input() to specify if that line should be deleted; if not restore its color

Sign in to comment.