2 added 113 characters in body
source | link

ThisMaybe the clipping can be avoided by not using ListPlot. Here is my variation using Point that you might find helpful (or maybe not), no time for extensive testing of all your conditions:

dist = Rescale[1 - EuclideanDistance[{0, 0}, #] & /@ theData];

Graphics[{Thick, 
  Point[theData, 
  VertexColors -> (Blend[{{0, {Black, Opacity[.01]}}, {1, {Black, 
  Opacity[.1]}}}, #1] & /@ dist)]}, AspectRatio -> 1, 
  Axes -> True, PlotRange -> {{-4, 4}, {-4, 4}}]

enter image description here

This is my variation using Point that you might find helpful (or maybe not):

dist = Rescale[1 - EuclideanDistance[{0, 0}, #] & /@ theData];

Graphics[{Thick, 
  Point[theData, 
  VertexColors -> (Blend[{{0, {Black, Opacity[.01]}}, {1, {Black, 
  Opacity[.1]}}}, #1] & /@ dist)]}, AspectRatio -> 1, 
  Axes -> True, PlotRange -> {{-4, 4}, {-4, 4}}]

enter image description here

Maybe the clipping can be avoided by not using ListPlot. Here is my variation using Point that you might find helpful (or maybe not), no time for extensive testing of all your conditions:

dist = Rescale[1 - EuclideanDistance[{0, 0}, #] & /@ theData];

Graphics[{Thick, 
  Point[theData, 
  VertexColors -> (Blend[{{0, {Black, Opacity[.01]}}, {1, {Black, 
  Opacity[.1]}}}, #1] & /@ dist)]}, AspectRatio -> 1, 
  Axes -> True, PlotRange -> {{-4, 4}, {-4, 4}}]

enter image description here

1
source | link

This is my variation using Point that you might find helpful (or maybe not):

dist = Rescale[1 - EuclideanDistance[{0, 0}, #] & /@ theData];

Graphics[{Thick, 
  Point[theData, 
  VertexColors -> (Blend[{{0, {Black, Opacity[.01]}}, {1, {Black, 
  Opacity[.1]}}}, #1] & /@ dist)]}, AspectRatio -> 1, 
  Axes -> True, PlotRange -> {{-4, 4}, {-4, 4}}]

enter image description here