| blib/lib/Chart/Plotly/Trace/Funnel/Marker/Colorbar/Title.pm | |||
|---|---|---|---|
| Criterion | Covered | Total | % |
| statement | 12 | 28 | 42.8 |
| branch | 0 | 8 | 0.0 |
| condition | 0 | 8 | 0.0 |
| subroutine | 4 | 5 | 80.0 |
| pod | 1 | 1 | 100.0 |
| total | 17 | 50 | 34.0 |
| line | stmt | bran | cond | sub | pod | time | code |
|---|---|---|---|---|---|---|---|
| 1 | package Chart::Plotly::Trace::Funnel::Marker::Colorbar::Title; | ||||||
| 2 | 1 | 1 | 6 | use Moose; | |||
| 1 | 3 | ||||||
| 1 | 10 | ||||||
| 3 | 1 | 1 | 6153 | use MooseX::ExtraArgs; | |||
| 1 | 2 | ||||||
| 1 | 10 | ||||||
| 4 | 1 | 1 | 1926 | use Moose::Util::TypeConstraints qw(enum union); | |||
| 1 | 2 | ||||||
| 1 | 10 | ||||||
| 5 | if ( !defined Moose::Util::TypeConstraints::find_type_constraint('PDL') ) { | ||||||
| 6 | Moose::Util::TypeConstraints::type('PDL'); | ||||||
| 7 | } | ||||||
| 8 | |||||||
| 9 | 1 | 1 | 1108 | use Chart::Plotly::Trace::Funnel::Marker::Colorbar::Title::Font; | |||
| 1 | 3 | ||||||
| 1 | 258 | ||||||
| 10 | |||||||
| 11 | our $VERSION = '0.041'; # VERSION | ||||||
| 12 | |||||||
| 13 | # ABSTRACT: This attribute is one of the possible options for the trace funnel. | ||||||
| 14 | |||||||
| 15 | sub TO_JSON { | ||||||
| 16 | 0 | 0 | 1 | my $self = shift; | |||
| 17 | 0 | 0 | my $extra_args = $self->extra_args // {}; | ||||
| 18 | 0 | my $meta = $self->meta; | |||||
| 19 | 0 | my %hash = %$self; | |||||
| 20 | 0 | for my $name ( sort keys %hash ) { | |||||
| 21 | 0 | my $attr = $meta->get_attribute($name); | |||||
| 22 | 0 | 0 | if ( defined $attr ) { | ||||
| 23 | 0 | my $value = $hash{$name}; | |||||
| 24 | 0 | my $type = $attr->type_constraint; | |||||
| 25 | 0 | 0 | 0 | if ( $type && $type->equals('Bool') ) { | |||
| 26 | 0 | 0 | $hash{$name} = $value ? \1 : \0; | ||||
| 27 | } | ||||||
| 28 | } | ||||||
| 29 | } | ||||||
| 30 | 0 | %hash = ( %hash, %$extra_args ); | |||||
| 31 | 0 | delete $hash{'extra_args'}; | |||||
| 32 | 0 | 0 | 0 | if ( $self->can('type') && ( !defined $hash{'type'} ) ) { | |||
| 33 | 0 | $hash{type} = $self->type(); | |||||
| 34 | } | ||||||
| 35 | 0 | return \%hash; | |||||
| 36 | } | ||||||
| 37 | |||||||
| 38 | has font => ( is => "rw", | ||||||
| 39 | isa => "Maybe[HashRef]|Chart::Plotly::Trace::Funnel::Marker::Colorbar::Title::Font", ); | ||||||
| 40 | |||||||
| 41 | has side => ( | ||||||
| 42 | is => "rw", | ||||||
| 43 | isa => enum( [ "right", "top", "bottom" ] ), | ||||||
| 44 | documentation => | ||||||
| 45 | "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", | ||||||
| 46 | ); | ||||||
| 47 | |||||||
| 48 | has text => ( | ||||||
| 49 | is => "rw", | ||||||
| 50 | isa => "Str", | ||||||
| 51 | documentation => | ||||||
| 52 | "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", | ||||||
| 53 | ); | ||||||
| 54 | |||||||
| 55 | __PACKAGE__->meta->make_immutable(); | ||||||
| 56 | 1; | ||||||
| 57 | |||||||
| 58 | __END__ | ||||||
| 59 | |||||||
| 60 | =pod | ||||||
| 61 | |||||||
| 62 | =encoding utf-8 | ||||||
| 63 | |||||||
| 64 | =head1 NAME | ||||||
| 65 | |||||||
| 66 | Chart::Plotly::Trace::Funnel::Marker::Colorbar::Title - This attribute is one of the possible options for the trace funnel. | ||||||
| 67 | |||||||
| 68 | =head1 VERSION | ||||||
| 69 | |||||||
| 70 | version 0.041 | ||||||
| 71 | |||||||
| 72 | =head1 SYNOPSIS | ||||||
| 73 | |||||||
| 74 | use Chart::Plotly; | ||||||
| 75 | use Chart::Plotly::Plot; | ||||||
| 76 | use JSON; | ||||||
| 77 | use Chart::Plotly::Trace::Funnel; | ||||||
| 78 | |||||||
| 79 | # Example from https://github.com/plotly/plotly.js/blob/b93e3a5a83b6561ac6258a59f274b5fc87630c3e/test/image/mocks/funnel_11.json | ||||||
| 80 | my $trace1 = Chart::Plotly::Trace::Funnel->new({'orientation' => 'v', 'marker' => {'color' => 'rgb(255, 102, 97)', }, 'y' => [13.23, 22.7, 26.06, ], 'x' => ['Half Dose', 'Full Dose', 'Double Dose', ], 'name' => 'Orange Juice', }); | ||||||
| 81 | |||||||
| 82 | my $trace2 = Chart::Plotly::Trace::Funnel->new({'name' => 'Vitamin C', 'marker' => {'color' => 'rgb(0, 196, 200)', }, 'y' => [7.98, 16.77, 26.14, ], 'x' => ['Half Dose', 'Full Dose', 'Double Dose', ], 'orientation' => 'v', }); | ||||||
| 83 | |||||||
| 84 | my $trace3 = Chart::Plotly::Trace::Funnel->new({'name' => 'Std Dev - OJ', 'x' => ['Half Dose', 'Full Dose', 'Double Dose', ], 'y' => [1.4102837, 1.236752, 0.8396031, ], 'visible' => JSON::false, 'orientation' => 'v', }); | ||||||
| 85 | |||||||
| 86 | my $trace4 = Chart::Plotly::Trace::Funnel->new({'y' => [0.868562, 0.7954104, 1.5171757, ], 'x' => ['Half Dose', 'Full Dose', 'Double Dose', ], 'name' => 'Std Dev - VC', 'orientation' => 'v', 'visible' => JSON::false, }); | ||||||
| 87 | |||||||
| 88 | |||||||
| 89 | my $plot = Chart::Plotly::Plot->new( | ||||||
| 90 | traces => [$trace1, $trace2, $trace3, $trace4, ], | ||||||
| 91 | layout => | ||||||
| 92 | {'autosize' => JSON::false, 'hidesources' => JSON::false, 'plot_bgcolor' => 'rgb(217, 217, 217)', 'font' => {'color' => '#000', 'size' => 12, 'family' => 'Arial, sans-serif', }, 'width' => 600, 'separators' => '.,', 'legend' => {'xanchor' => 'left', 'font' => {'size' => 16, 'family' => '', 'color' => 'rgb(0, 0, 0)', }, 'bgcolor' => 'rgba(255, 255, 255, 0)', 'bordercolor' => 'rgba(0, 0, 0, 0)', 'yanchor' => 'auto', 'x' => 1.02, 'y' => 0.931907250442406, 'borderwidth' => 1, 'traceorder' => 'normal', }, 'funnelgroupgap' => 0, 'funnelgap' => 0.2, 'annotations' => [{'tag' => '', 'yatype' => 'linear', 'showarrow' => JSON::false, 'xanchor' => 'auto', 'bgcolor' => 'rgba(0,0,0,0)', 'arrowhead' => 1, 'yref' => 'paper', 'ax' => -10, 'align' => 'center', 'yanchor' => 'auto', 'xatype' => 'category', 'bordercolor' => '', 'ref' => 'paper', 'text' => '<b>Supplement</b>', 'x' => 1.3479735318445, 'y' => 0.998214285714286, 'opacity' => 1, 'arrowwidth' => 0, 'font' => {'size' => 18, 'family' => '', 'color' => '', }, 'ay' => -26.7109375, 'arrowcolor' => '', 'borderpad' => 1, 'borderwidth' => 1, 'xref' => 'paper', 'arrowsize' => 1, }, ], 'height' => 440, 'dragmode' => 'zoom', 'hovermode' => 'x', 'paper_bgcolor' => '#fff', 'boxmode' => 'overlay', 'showlegend' => JSON::true, 'titlefont' => {'family' => '', 'size' => 16, 'color' => '', }, 'title' => 'Grouped Funnel Chart', 'margin' => {'r' => 0, 't' => 80, 'b' => 80, 'l' => 80, 'autoexpand' => JSON::true, 'pad' => 2, }, 'yaxis' => {'gridcolor' => 'rgb(255, 255, 255)', 'autotick' => JSON::true, 'ticks' => '', 'tickfont' => {'color' => '', 'size' => 16, 'family' => '', }, 'mirror' => JSON::true, 'tickangle' => 0, 'domain' => [0, 1, ], 'anchor' => 'x', 'showgrid' => JSON::true, 'exponentformat' => 'e', 'tick0' => 0, 'showticklabels' => JSON::true, 'nticks' => 0, 'zerolinewidth' => 1, 'zeroline' => JSON::false, 'position' => 0, 'range' => [0, 29.1128165263158, ], 'dtick' => 5, 'showexponent' => 'all', 'showline' => JSON::false, 'linecolor' => '#000', 'type' => 'linear', 'linewidth' => 0.1, 'overlaying' => JSON::false, 'ticklen' => 5, 'rangemode' => 'normal', 'tickwidth' => 1, 'tickcolor' => '#000', 'title' => 'Length', 'autorange' => JSON::true, 'titlefont' => {'size' => 16, 'family' => '', 'color' => '', }, 'zerolinecolor' => '#000', 'gridwidth' => 1.9, }, 'funnelmode' => 'group', 'xaxis' => {'ticks' => '', 'autotick' => JSON::true, 'gridcolor' => 'rgb(255, 255, 255)', 'tickfont' => {'color' => '', 'family' => '', 'size' => 16, }, 'mirror' => JSON::true, 'anchor' => 'y', 'tickangle' => 0, 'domain' => [0, 1, ], 'showgrid' => JSON::true, 'exponentformat' => 'e', 'tick0' => 0, 'showticklabels' => JSON::true, 'range' => [-0.5, 2.5, ], 'nticks' => 0, 'zerolinewidth' => 1, 'zeroline' => JSON::false, 'position' => 0, 'showexponent' => 'all', 'dtick' => 1, 'showline' => JSON::false, 'type' => 'category', 'linecolor' => '#000', 'overlaying' => JSON::false, 'linewidth' => 0.1, 'ticklen' => 5, 'rangemode' => 'normal', 'titlefont' => {'size' => 16, 'family' => '', 'color' => '', }, 'autorange' => JSON::true, 'title' => 'Dose (mg)', 'tickwidth' => 1, 'tickcolor' => '#000', 'gridwidth' => 1.9, 'zerolinecolor' => '#000', }, } | ||||||
| 93 | ); | ||||||
| 94 | |||||||
| 95 | Chart::Plotly::show_plot($plot); | ||||||
| 96 | |||||||
| 97 | =head1 DESCRIPTION | ||||||
| 98 | |||||||
| 99 | This attribute is part of the possible options for the trace funnel. | ||||||
| 100 | |||||||
| 101 | This file has been autogenerated from the official plotly.js source. | ||||||
| 102 | |||||||
| 103 | If you like Plotly, please support them: L<https://plot.ly/> | ||||||
| 104 | Open source announcement: L<https://plot.ly/javascript/open-source-announcement/> | ||||||
| 105 | |||||||
| 106 | Full reference: L<https://plot.ly/javascript/reference/#funnel> | ||||||
| 107 | |||||||
| 108 | =head1 DISCLAIMER | ||||||
| 109 | |||||||
| 110 | This is an unofficial Plotly Perl module. Currently I'm not affiliated in any way with Plotly. | ||||||
| 111 | But I think plotly.js is a great library and I want to use it with perl. | ||||||
| 112 | |||||||
| 113 | =head1 METHODS | ||||||
| 114 | |||||||
| 115 | =head2 TO_JSON | ||||||
| 116 | |||||||
| 117 | Serialize the trace to JSON. This method should be called only by L<JSON> serializer. | ||||||
| 118 | |||||||
| 119 | =head1 ATTRIBUTES | ||||||
| 120 | |||||||
| 121 | =over | ||||||
| 122 | |||||||
| 123 | =item * font | ||||||
| 124 | |||||||
| 125 | =item * side | ||||||
| 126 | |||||||
| 127 | Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute. | ||||||
| 128 | |||||||
| 129 | =item * text | ||||||
| 130 | |||||||
| 131 | Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated. | ||||||
| 132 | |||||||
| 133 | =back | ||||||
| 134 | |||||||
| 135 | =head1 AUTHOR | ||||||
| 136 | |||||||
| 137 | Pablo Rodríguez González <pablo.rodriguez.gonzalez@gmail.com> | ||||||
| 138 | |||||||
| 139 | =head1 COPYRIGHT AND LICENSE | ||||||
| 140 | |||||||
| 141 | This software is Copyright (c) 2020 by Pablo Rodríguez González. | ||||||
| 142 | |||||||
| 143 | This is free software, licensed under: | ||||||
| 144 | |||||||
| 145 | The MIT (X11) License | ||||||
| 146 | |||||||
| 147 | =cut |