Algorithm-Classifier-IsolationForest
view release on metacpan or search on metacpan
lib/Algorithm/Classifier/IsolationForest/App/Command/csv2plot.pm view on Meta::CPAN
use warnings;
use Algorithm::Classifier::IsolationForest ();
use Algorithm::Classifier::IsolationForest::App -command;
use File::Slurp qw(read_file write_file);
use File::Spec ();
use File::Temp qw(tempfile);
sub opt_spec {
return (
[ 'i=s', 'Input CSV for processing.', { 'completion' => 'files' } ],
[ 'o=s', 'PNG file to output to. Default: plot.png', { 'default' => 'plot.png', 'completion' => 'files' } ],
[ 'w', 'If the file specified via -o exists, over write it.' ],
[
'p=s',
'Type of plot. Default: auto',
{ 'default' => 'auto', completion => [ 'auto', '2heat', '3range', '3binary' ] }
],
[ 'print', 'Print what would be used with gnuplot instead of calling gnuplot' ],
[ 'open', 'Call xdg-open to open the generated graph.' ],
[ 'small-points', 'Use smaller points (ps 0.8) for dense 3range datasets.' ],
);
lib/Algorithm/Classifier/IsolationForest/App/Command/csv2plot.pm view on Meta::CPAN
my $score_col = $ncols - 1;
my $pred_col = $ncols;
$opt->{'i'} = File::Spec->rel2abs( $opt->{'i'} );
$opt->{'o'} = File::Spec->rel2abs( $opt->{'o'} );
my ( $tempfh, $tempfile ) = tempfile( 'UNLINK' => 1 );
my $ps = $opt->{'small_points'} ? '0.8' : '1.5';
my $gnu_plot_stuff = 'set terminal pngcairo size 1200,900 font "Sans,11"
set output "' . $opt->{'o'} . '"
set datafile separator ","
set key autotitle columnhead
set grid lc "gray70" lw 0.5 dt 2
';
if ( $opt->{'p'} eq '3range' ) {
( run in 1.021 second using v1.01-cache-2.11-cpan-788537b7465 )