I'll summarize the answers presented in the comments, so the question appears answered to interested future users, in the spirit of this laudable Meta post from Ian.
The most direct answer to your question, i.e. preventing ParametricPlot from drawing connecting lines, was provided by Simon Rochester:
parplot = ParametricPlot[
{Re[Exp[100*I*t]], Im[Exp[100*I*t]]}, {t, 0, 1000},
MeshStyle -> PointSize[Small], Mesh -> All, PlotStyle -> None
]

Adaptive sampling leads to the use of more than 3k points for the plot above, as glance noted as well:
Length@First@Cases[parplot, Point[a_List] -> a, Infinity]
(* Out: 3108 *)
Simon also suggested to construct the plot directly from Graphics
primitives. Below is that suggestion, adjusted to have roughly the same number of plot points as the ParametricPlot
above, as well as to show the axes:
Graphics[
Point@Table[{Re[Exp[100*I*t]], Im[Exp[100*I*t]]}, {t, 0, 1000, 0.322}],
Axes -> True
]
The result is visually indistinguishable from that of the ParametricPlot
above.
Bob Hanlon's suggested approaches using ListPlot
, applied to a table generated by Map
ping a pure function on a Range
, or using Table
. The two approaches are perfectly equivalent, and I personally find the Table
a bit more readable. Again, I adjusted the $t$ step to fall in line with the examples above.
ListPlot[
Table[{Re[Exp[100*I*t]], Im[Exp[100*I*t]]}, {t, 0, 1000, .322}],
AspectRatio -> Automatic
]
It is interesting to compare timings for these approaches (these were obtained using RepeatedTiming
):
ParametricPlot : 0.025 s
Graphics : 0.00047 s
ListPlot/Table : 0.030 s
ListPlot/Range : 0.031 s
In short, constructing the plot directly from Graphics
primitives seems to be TWO orders of magnitude faster (!!) than the *Plot
approaches. I may have expected that the magic going on under the hood in ParametricPlot
would slow that one down, but such a marked difference between Graphics@Point
and the comparatively "dumber" ListPlot
was quite unexpected to me.
Graphics@Point@Table[{Re[Exp[100*I*t]], Im[Exp[100*I*t]]}, {t, 0, 1000}]
$\endgroup$ParametricPlot[{Re[Exp[100*I*t]], Im[Exp[100*I*t]]}, {t, 0, 1000}, MeshStyle -> PointSize[Small], Mesh -> All, PlotStyle -> None]
$\endgroup$PlotPoints
option. In your example you need it quite high but it works. Try for exampleParametricPlot[ {Re[Exp[100*I*t]], Im[Exp[100*I*t]]}, {t, 0, 1000}, PlotStyle -> Thin, ImageSize -> Large, PlotPoints -> 3000 ]
. Higher values of PlotPoints decrease the thickness of the resulting circle. $\endgroup$ListPlot[Table[{Re[Exp[100*I*t]], Im[Exp[100*I*t]]}, {t, 0, 1000, .01}], AspectRatio -> 1]
orListPlot[{Re[Exp[100*I*#]], Im[Exp[100*I*#]]} & /@ Range[0, 1000, .01], AspectRatio -> 1]
$\endgroup$PlotPoints
gives the expected results. (To get a good result it needs to be around 10000, which does take noticeably longer to plot.) $\endgroup$