title: (wx)Maxima plot point by point, numbered
body: <p>I have a list of roots and I want to plot the real/imaginary parts. If <code>s=allroots()</code>, <code>r=realpart()</code> and <code>i=imagpart()</code>, all with <code>makelist()</code>. Since <code>length(s)</code> can get ...lengthy, is there a way to plot point by point and have them numbered? Actually, the numbering part is what concerns me most. I can simply use <code>points(r,i)</code> and get the job done, but I'd like to know their occurence before and after some sorting algorithms. It's not always necessary to plot <em>all</em> the points, I can plot up until <em>some</em> number, but I do have to be able to see their order of having been sorted out.</p>
  
  <p>I have tried multiplot_mode but it doesn't work:</p>
  
  <pre><code>multiplot_mode(wxt)$
  for i:1 thru length(s) do draw2d(points([r[i]],[i[i]]))$
  multiplot_mode(none)$
  </code></pre>
  
  <p>All I get is a single point. Now, if this should work, using <code>draw2d</code>'s <code>label(["label",posx,posy])</code> is very handy, but can I somehow evaluate <code>i</code> in the <code>for</code> loop inside the <code>""</code>?</p>
  
  <p>Or, is there any other way to do it? With Octave? or Scilab? I'm on Linux, btw.</p>
  
  <hr>
  
  <p>Just to be clear, here's what I currently do: (I can't post images, here's the link: i.stack.imgur.com/hNYZF.png )</p>
  
  <p>...and here is the wxMaxima code:</p>
  
  <pre>ptest:sortd(pp2); length(ptest);
  draw2d(proportional_axes=xy,xrange=[sort(realpart(s))[1]-0.1,sort(realpart(s))[length(s)]+0.1],
   yrange=[sort(imagpart(s))[1]-0.1,sort(imagpart(s))[length(s)]+0.1],point_type=0,
   label(["1",realpart(ptest[1]),imagpart(ptest[1])]),points([realpart(ptest[1])],[imagpart(ptest[1])]),
   label(["2",realpart(ptest[2]),imagpart(ptest[2])]),points([realpart(ptest[2])],[imagpart(ptest[2])]),
   label(["3",realpart(ptest[3]),imagpart(ptest[3])]),points([realpart(ptest[3])],[imagpart(ptest[3])]),
   label(["4",realpart(ptest[4]),imagpart(ptest[4])]),points([realpart(ptest[4])],[imagpart(ptest[4])]),
   label(["5",realpart(ptest[5]),imagpart(ptest[5])]),points([realpart(ptest[5])],[imagpart(ptest[5])]),
   label(["6",realpart(ptest[6]),imagpart(ptest[6])]),points([realpart(ptest[6])],[imagpart(ptest[6])]),
   label(["7",realpart(ptest[7]),imagpart(ptest[7])]),points([realpart(ptest[7])],[imagpart(ptest[7])]),
   label(["8",realpart(ptest[8]),imagpart(ptest[8])]),points([realpart(ptest[8])],[imagpart(ptest[8])]),
   label(["9",realpart(ptest[9]),imagpart(ptest[9])]),points([realpart(ptest[9])],[imagpart(ptest[9])]),
   label(["10",realpart(ptest[10]),imagpart(ptest[10])]),points([realpart(ptest[10])],[imagpart(ptest[10])]),
   label(["11",realpart(ptest[11]),imagpart(ptest[11])]),points([realpart(ptest[11])],[imagpart(ptest[11])]),
   label(["12",realpart(ptest[12]),imagpart(ptest[12])]),points([realpart(ptest[12])],[imagpart(ptest[12])]),/*
   label(["13",realpart(ptest[13]),imagpart(ptest[13])]),points([realpart(ptest[13])],[imagpart(ptest[13])]),
   label(["14",realpart(ptest[14]),imagpart(ptest[14])]),points([realpart(ptest[14])],[imagpart(ptest[14])]),*/
   color=red,point_type=circle,point_size=3,points_joined=false,points(realpart(pp2),imagpart(pp2)),points_joined=false,
   color=black,key="",line_type=dots,nticks=50,polar(1,t,0,2*%pi) )$</pre>
  
  <p>This is for 14 zeroes, only. For higher orders it would be very painful.</p>