Chart-Plotly
view release on metacpan or search on metacpan
"JSON" => 0,
"LWP::UserAgent" => 0,
"Module::Find" => 0,
"Module::Load" => 0,
"Moo::Role" => 0,
"Moose" => 0,
"Moose::Util::TypeConstraints" => 0,
"MooseX::ExtraArgs" => 0,
"Params::Validate" => 0,
"Path::Tiny" => 0,
"Ref::Util" => 0,
"Role::Tiny" => 0,
"Text::Template" => 0,
"UUID::Tiny" => 0,
"namespace::autoclean" => 0,
"overload" => 0,
"perl" => "5.010",
"strict" => 0,
"utf8" => 0,
"vars" => 0,
"warnings" => 0
"JSON" : "0",
"LWP::UserAgent" : "0",
"Module::Find" : "0",
"Module::Load" : "0",
"Moo::Role" : "0",
"Moose" : "0",
"Moose::Util::TypeConstraints" : "0",
"MooseX::ExtraArgs" : "0",
"Params::Validate" : "0",
"Path::Tiny" : "0",
"Ref::Util" : "0",
"Role::Tiny" : "0",
"Text::Template" : "0",
"UUID::Tiny" : "0",
"namespace::autoclean" : "0",
"overload" : "0",
"perl" : "5.010",
"strict" : "0",
"utf8" : "0",
"vars" : "0",
"warnings" : "0"
JSON: '0'
LWP::UserAgent: '0'
Module::Find: '0'
Module::Load: '0'
Moo::Role: '0'
Moose: '0'
Moose::Util::TypeConstraints: '0'
MooseX::ExtraArgs: '0'
Params::Validate: '0'
Path::Tiny: '0'
Ref::Util: '0'
Role::Tiny: '0'
Text::Template: '0'
UUID::Tiny: '0'
namespace::autoclean: '0'
overload: '0'
perl: '5.010'
strict: '0'
utf8: '0'
vars: '0'
warnings: '0'
lib/Chart/Plotly.pm view on Meta::CPAN
use utf8;
use Exporter 'import';
use vars qw(@EXPORT_OK);
@EXPORT_OK = qw(show_plot);
use JSON;
use Params::Validate qw(:all);
use Text::Template;
use Module::Load;
use Ref::Util;
use HTML::Show;
use UUID::Tiny ':std';
use File::ShareDir;
use Path::Tiny;
our $VERSION = '0.042'; # VERSION
# ABSTRACT: Generate html/javascript charts from perl data using javascript library plotly.js
sub render_full_html {
## no critic
my %params = validate( @_, { data => { type => ARRAYREF | OBJECT }, } );
## use critic
my $data = $params{'data'};
my $chart_id = create_uuid_as_string(UUID_TIME);
my $html;
if ( Ref::Util::is_blessed_ref($data) && $data->isa('Chart::Plotly::Plot') ) {
$html = _render_html_wrap( $data->html( div_id => $chart_id ) );
} else {
$html = _render_html_wrap( _render_cell( _process_data($data), $chart_id ) );
}
return $html;
}
sub _render_html_wrap {
my $body = shift;
my $html_begin = <<'HTML_BEGIN';
lib/Chart/Plotly.pm view on Meta::CPAN
defined $layout ? ( layout => $layout ) : (),
defined $config ? ( config => $config ) : (),
};
return Text::Template::fill_in_string( $template, HASH => $template_variables );
}
sub _process_data {
my $data = shift;
my $json_formatter = JSON->new->allow_blessed(1)->convert_blessed(1);
local *PDL::TO_JSON = sub { $_[0]->unpdl };
if ( Ref::Util::is_blessed_ref($data) ) {
my $adapter_name = 'Chart::Plotly::Adapter::' . ref $data;
eval {
load $adapter_name;
my $adapter = $adapter_name->new( data => $data );
$data = $adapter->traces();
};
if ($@) {
warn 'Cannot load adapter: ' . $adapter_name . '. ' . $@;
}
}
lib/Chart/Plotly.pm view on Meta::CPAN
return '';
}
}
sub html_plot {
my @data_to_plot = @_;
my $rendered_cells = "";
for my $data (@data_to_plot) {
my $id = create_uuid_as_string(UUID_TIME);
if ( Ref::Util::is_blessed_ref($data) && $data->isa('Chart::Plotly::Plot') ) {
$rendered_cells .= $data->html( div_id => $id );
} else {
$rendered_cells .= _render_cell( _process_data($data), $id );
}
}
return _render_html_wrap($rendered_cells);
}
sub show_plot {
HTML::Show::show( html_plot(@_) );
( run in 0.702 second using v1.01-cache-2.11-cpan-a5abf4f5562 )