Plot coordinate pairs: Difference between revisions
Content deleted Content added
m →{{header|Perl}}: Added syntax highlight. |
|||
Line 21: | Line 21: | ||
[http://img28.picoodle.com/img/img28/4/2/7/f_qsortrange1m_1b7f493.png qsort-range-10-9.png] |
[http://img28.picoodle.com/img/img28/4/2/7/f_qsortrange1m_1b7f493.png qsort-range-10-9.png] |
||
=={{header|OCaml}}== |
|||
<ocaml>let x = [0; 1; 2; 3; 4; 5; 6; 7; 8; 9] |
|||
and y = [2.7; 2.8; 31.4; 38.1; 58.0; 76.2; 100.5; 130.0; 149.3; 180.0] |
|||
let round x = int_of_float (floor(x +. 0.5)) |
|||
open Graphics |
|||
let () = |
|||
open_graph ""; |
|||
List.iter2 |
|||
(fun x y -> |
|||
(* scale to fit in the window *) |
|||
let _x = x * 20 |
|||
and _y = round(y *. 1.5) in |
|||
plot _x _y) |
|||
x y; |
|||
close_graph (); |
|||
;;</ocaml> |
|||
=={{header|Perl}}== |
=={{header|Perl}}== |
Revision as of 13:50, 21 September 2008
Plot coordinate pairs
You are encouraged to solve this task according to the task description, using any language you may know.
You are encouraged to solve this task according to the task description, using any language you may know.
Plot a function represented as `x', `y' numerical arrays.
Post link to your resulting image for input arrays (see Example section for Python language on Query Performance page):
x = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; y = {2.7, 2.8, 31.4, 38.1, 58.0, 76.2, 100.5, 130.0, 149.3, 180.0};
This task is intended as a subtask for Measure relative performance of sorting algorithms implementations.
J
load 'plot' magnitudes =: 2.7 2.8 31.4 38.1 58.0 76.2 100.5 130.0 149.3 180.0 'dot; pensize 2.4' plot magnitudes
Maxima
(%i1) ".." (m, n) := makelist (i, i, m, n); infix ("..")$ (%i2) x: 0 .. 9$ y:[2.7, 2.8, 31.4, 38.1, 58.0, 76.2, 100.5, 130.0, 149.3, 180.0]$ (%i3) plot2d(['discrete, x, y], [style, [points,5,1,1]], [gnuplot_term, png], [gnuplot_out_file, "qsort-range-10-9.png"])$
OCaml
<ocaml>let x = [0; 1; 2; 3; 4; 5; 6; 7; 8; 9] and y = [2.7; 2.8; 31.4; 38.1; 58.0; 76.2; 100.5; 130.0; 149.3; 180.0] let round x = int_of_float (floor(x +. 0.5))
open Graphics let () =
open_graph ""; List.iter2 (fun x y -> (* scale to fit in the window *) let _x = x * 20 and _y = round(y *. 1.5) in plot _x _y) x y; close_graph ();
- </ocaml>
Perl
<perl>
use GD::Graph::points; @data = ( [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [2.7, 2.8, 31.4, 38.1, 58.0, 76.2, 100.5, 130.0, 149.3, 180.0], ); $graph = GD::Graph::points->new(400, 300); $gd = $graph->plot(\@data) or die $graph->error; # Save as image. open(OUF, ">qsort-range-10-9.png"); binmode OUF; print OUF $gd->png; close(OUF);
</perl>
<perl>
use Imager; use Imager::Plot; @x = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9); @y = (2.7, 2.8, 31.4, 38.1, 58.0, 76.2, 100.5, 130.0, 149.3, 180.0); $plot = Imager::Plot->new( 'Width' => 400, 'Height' => 300, 'GlobalFont' => 'PATH_TO_TTF_FONT', ); $plot->AddDataSet( 'X' => \@x, 'Y' => \@y, 'style' => { 'marker' => { 'size' => 2, 'symbol' => 'circle', 'color' => Imager::Color->new('red'), }, }, ); $img = Imager->new( 'xsize' => 500, 'ysize' => 400, ); $img->box('filled' => 1, 'color' => 'white'); $plot->Render('Image' => $img, 'Xoff' => 50, 'Yoff' => 350); $img->write('file' => 'qsort-range-10-9.png');
</perl>
Python
>>> x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> y = [2.7, 2.8, 31.4, 38.1, 58.0, 76.2, 100.5, 130.0, 149.3, 180.0]
>>> import pylab >>> pylab.plot(x, y, 'bo') >>> pylab.savefig('qsort-range-10-9.png')
qsort-range-10-9.png (23 KiB)