We’re rewarding the question askers & reputations are being recalculated! Read more.
2 added 645 characters in body
source | link

(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}]}})]

enter image description here

(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}]}})]

enter image description here

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}]}})]

enter image description here

1
source | link

(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}]}})]

enter image description here