#!/usr/bin/perl -w # # Testprogram for f_x_ticks # #====================================================================== use strict; use Chart::LinesPoints; print "1..1\n"; my @x_values = (); # real x values my @y_values = (); # real y values my @x_plot_values = (); # x values for plot my @y_plot_values = (); # y values for plot my $graphic; my $min_x = -15; # random start my $max_x = 10; # random stop my $min_y; my $max_y; my $x; my $y; #------------------------------------------------------------------------------------ # Start #------------------------------------------------------------------------------------ $x = $min_x; for ( my $idx = 0 ; $x <= $max_x ; $idx += 0.1 ) { $x = $min_x + $idx; $x_values[$idx] = $x; $y_values[$idx] = cos( ( $x - $min_x ) ); } undef $min_y; undef $max_y; for ( my $idx = 0 ; $idx <= $#x_values ; $idx++ ) { $x_plot_values[$idx] = $x_values[$idx] + $min_x; $y_plot_values[$idx] = $y_values[$idx]; if ( !defined($min_y) ) { $min_y = $y_values[$idx]; } else { $min_y = ( $min_y < $y_values[$idx] ) ? $min_y : $y_values[$idx]; } if ( !defined($max_y) ) { $max_y = $y_values[$idx]; } else { $max_y = ( $max_y > $y_values[$idx] ) ? $max_y : $y_values[$idx]; } } #------------------------------------------------------------------------------------ # Make it #------------------------------------------------------------------------------------ $graphic = Chart::LinesPoints->new( 750, 600 ); $graphic->set( 'brush_size' => 2 ); $graphic->add_dataset(@x_plot_values); $graphic->add_dataset(@y_plot_values); $graphic->set( 'min_val' => $min_y ); $graphic->set( 'max_val' => $max_y ); #$graphic -> set ('y_ticks' => 11 ); #$graphic -> set ('skip_x_ticks' => 100); $graphic->set( 'pt_size' => 2 ); $graphic->set( 'grey_background' => 'true' ); $graphic->set( 'graph_border' => 18 ); $graphic->set( 'title' => "f_tick example for x and y values" ); $graphic->set( 'y_grid_lines' => 'false' ); $graphic->set( 'x_grid_lines' => 'false' ); $graphic->set( 'x_ticks' => 'vertical' ); $graphic->set( 'legend' => 'none' ); $graphic->set( 'x_label' => 'some x-values' ); $graphic->set( 'y_label' => 'f = cos(g(x))' ); # use a special function to convert the x values to HH:MM:SS $graphic->set( 'f_x_tick' => \&convert_to_real_x ); if ( $graphic->can('png') ) { my $picture_file = "samples/f_ticks_1.png"; $graphic->png($picture_file); } print "ok 1\n"; exit(0); sub convert_to_real_x { my $plot_x = shift; my $result = sprintf "%6.1f", $plot_x - $min_x; return ($result); }