Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I asked a question at MSE and Raymond Manzoni provided an excellent answer that included these visuals:

enter image description here enter image description here

I made a very basic attempt at recreation with

y = 10000; ListLinePlot[Table[{Im[E^(-I y Log[k])/Sqrt[k]], Re[E^(-I y  
Log[k])/Sqrt[k]]}, {k, 1, Round[Sqrt[10000]]}]]

but a very messy plot resulted. I tried various parametric plots, but was equally disappointed with the results. Could someone please point me in the right direction to achieve the curlicues (that were apparently applet-generated) in the answer listed?

share|improve this question
up vote 7 down vote accepted

You need to define partial sums (I will use Simon's definition in the comments which is faster than my older one):

Manzoni[n_, y_] := Transpose@{Re@#, Im@#} &@Accumulate[Range[n]^-(.5 + y I)]

The thing worth attention here is 1/k^(.5 + I y) - meaning 0.5 which makes it automatically numeric before the sum is taken. If you would keep 1/2 and wrap N[...] outside it would be much slower.

ListLinePlot[Manzoni[3000, 10000], Frame -> True, GridLines -> Automatic, 
                  PlotStyle -> Directive[Red, Opacity[.7]]]

enter image description here

ListLinePlot[Manzoni[4000, 10000], Frame -> True, GridLines -> Automatic, 
 PlotStyle -> Directive[Red, Opacity[.2]], 
 PlotRange -> {{-.3398, -.339}, {-.0378, -.0365}}, AspectRatio -> 1]

enter image description here

From pure artistic point of view I think a spline can make it real pretty, perhaps even tattoo-ready ;-)

Graphics[BSplineCurve[Manzoni[3000, 10000]]]

enter image description here

Other parameters:

Graphics[BSplineCurve[Manzoni[5000, 20000]]]

enter image description here

share|improve this answer
This is incredible! Thank you so much for writing this - I hope this answer gets the attention it deserves!! – martin Jun 2 '14 at 7:24
You could use something like data = Transpose@{Re@#, Im@#} &@ Accumulate[Range[3000]^-(0.5 + 10000 I)]; to calculate the data – Simon Woods Jun 2 '14 at 16:04
+1 @SimonWoods - much better of course - thank you - I updated the post with your definition. – Vitaliy Kaurov Jun 2 '14 at 16:15
+1. BTW I think there is an L-system generating a similar pattern, but I failed to find the exact name. – Silvia Jun 11 '14 at 17:59

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.