We’re rewarding the question askers & reputations are being recalculated! Read more.

 2 added 645 characters in body edited Sep 15 '13 at 14:48 Kuba♦ 123k1212 gold badges221221 silver badges578578 bronze badges (loading...) This is not general approach. It applies to this particular data. First, let's select unstable branch. One look at the plot and you know the condidtions: unstable = Select[Points, First@# >= 0 && Last@# == 0 &]  The rest are stable so we use Complement. There are 3 branches but they are easy to separate because each one has different Sign of the second coordinate (*that's why GatherBy appears) :). Then ugly Append with {0,0} just to make them look like one curve. And SortBy so there will be no problem with appendding ( it should be one append, two times prepend). stable = SortBy[#, First] & /@ ( Append[#, {0, 0}] & /@ ( GatherBy[Complement[Points, unstable], Sign@Last@# &] ) ) ListLinePlot[stable~Join~{unstable}, PlotStyle -> {Blue, Blue, Blue, Red}, BaseStyle -> {20, Thickness@.007}, AxesLabel -> {r, x}, Epilog -> (Text @@@ {{"Stable", Scaled[{0.1, .6}]}, {"Stable", Scaled[{0.9, .8}]}, {"Stable", Scaled[{0.9, .2}]}, {"Unstable", Scaled[{0.7, .6}]}})] (loading...) unstable = Select[Points, First@# >= 0 && Last@# == 0 &] stable = SortBy[#, First] & /@ ( Append[#, {0, 0}] & /@ GatherBy[Complement[Points, unstable], Sign@Last@# &]) ListLinePlot[stable~Join~{unstable}, PlotStyle -> {Blue, Blue, Blue, Red}, BaseStyle -> {20, Thickness@.007}, AxesLabel -> {r, x}, Epilog -> (Text @@@ {{"Stable", Scaled[{0.1, .6}]}, {"Stable", Scaled[{0.9, .8}]}, {"Stable", Scaled[{0.9, .2}]}, {"Unstable", Scaled[{0.7, .6}]}})] This is not general approach. It applies to this particular data. First, let's select unstable branch. One look at the plot and you know the condidtions: unstable = Select[Points, First@# >= 0 && Last@# == 0 &]  The rest are stable so we use Complement. There are 3 branches but they are easy to separate because each one has different Sign of the second coordinate (*that's why GatherBy appears) :). Then ugly Append with {0,0} just to make them look like one curve. And SortBy so there will be no problem with appendding ( it should be one append, two times prepend). stable = SortBy[#, First] & /@ ( Append[#, {0, 0}] & /@ ( GatherBy[Complement[Points, unstable], Sign@Last@# &] ) ) ListLinePlot[stable~Join~{unstable}, PlotStyle -> {Blue, Blue, Blue, Red}, BaseStyle -> {20, Thickness@.007}, AxesLabel -> {r, x}, Epilog -> (Text @@@ {{"Stable", Scaled[{0.1, .6}]}, {"Stable", Scaled[{0.9, .8}]}, {"Stable", Scaled[{0.9, .2}]}, {"Unstable", Scaled[{0.7, .6}]}})] 1 answered Sep 15 '13 at 14:40 Kuba♦ 123k1212 gold badges221221 silver badges578578 bronze badges (loading...) unstable = Select[Points, First@# >= 0 && Last@# == 0 &] stable = SortBy[#, First] & /@ ( Append[#, {0, 0}] & /@ GatherBy[Complement[Points, unstable], Sign@Last@# &]) ListLinePlot[stable~Join~{unstable}, PlotStyle -> {Blue, Blue, Blue, Red}, BaseStyle -> {20, Thickness@.007}, AxesLabel -> {r, x}, Epilog -> (Text @@@ {{"Stable", Scaled[{0.1, .6}]}, {"Stable", Scaled[{0.9, .8}]}, {"Stable", Scaled[{0.9, .2}]}, {"Unstable", Scaled[{0.7, .6}]}})] 