view release on metacpan or search on metacpan
t/File/SmartNL.pm view on Meta::CPAN
#
#
=head1 TEST DESCRIPTIONS
The test descriptions uses a legend to
identify different aspects of a test description
in accordance with
L<STD FormDB Test Description Fields|Test::STDmaker/STD FormDB Test Description Fields>.
=head2 Test Plan
view all matches for this distribution
view release on metacpan or search on metacpan
t/File/SubPM.pm view on Meta::CPAN
#
#
=head1 TEST DESCRIPTIONS
The test descriptions uses a legend to
identify different aspects of a test description
in accordance with
L<STD FormDB Test Description Fields|Test::STDmaker/STD FormDB Test Description Fields>.
=head2 Test Plan
view all matches for this distribution
view release on metacpan or search on metacpan
t/File/Where.pm view on Meta::CPAN
#
#
=head1 TEST DESCRIPTIONS
The test descriptions uses a legend to
identify different aspects of a test description
in accordance with
L<STD FormDB Test Description Fields|Test::STDmaker/STD FormDB Test Description Fields>.
=head2 Test Plan
view all matches for this distribution
view release on metacpan or search on metacpan
t/fixtures/google.html view on Meta::CPAN
(function(){try{var a=window.gbar;a.mcf("pm",{p:"2469003,Jb_,7,,"});}catch(e){window.gbar&&gbar.logger&&gbar.logger.ml(e,{"_sn":"cfg.init"});}})();
(function(){try{var a=window.gbar;a.mcf("mm",{s:"1"});}catch(e){window.gbar&&gbar.logger&&gbar.logger.ml(e,{"_sn":"cfg.init"});}})();
(function(){try{var d=window.gbar.i.i;var e=window.gbar;var f=e.i;var g=f.c("1",0),h=/\bgbmt\b/,k=function(a){try{var b=document.getElementById("gb_"+g),c=document.getElementById("gb_"+a);b&&f.l(b,h.test(b.className)?"gbm0l":"gbz0l");c&&f.k(c,h.test(...
n(a)},q=function(){if(window.google&&window.google.sn){var a=/.*hp$/;return a.test(window.google.sn)?"":"1"}return"-1"};e.rp=q;e.slp=k;e.qs=p;e.qsi=n;}catch(e){window.gbar&&gbar.logger&&gbar.logger.ml(e,{"_sn":"cfg.init"});}})();
(function(){try{window.gbar.rdl();}catch(e){window.gbar&&gbar.logger&&gbar.logger.ml(e,{"_sn":"cfg.init"});}})();
</script> </head><body class="hp" onload="try{if(!google.j.b){document.f&&document.f.q.focus();document.gbqf&&document.gbqf.q.focus();}}catch(e){}if(document.images)new Image().src='/images/nav_logo117.png'" dir="ltr" alink="#dd4b39" ...
var _coarr = eval('(' + _co + ')');google.j[1]={cc:[],co:_coarr,bl:['mngb','gb_'],funcs:[
{'n':'pcs','i':'gstyle','css':document.getElementById('gstyle').innerHTML,'is':'','r':true,'sc':true},{'n':'pc','i':'cst','h':document.getElementById('cst').innerHTML,'is':'','r':true,'sc':true},{'n':'pc','i':'main','h':_mstr,'is':'','r':true,'sc':tr...
};})();</script><script data-url="/extern_chrome/1cfbda40ed967628.js?bav=or.r_qf" id="ecs">function wgjp(){var xjs=document.createElement('script');xjs.src=document.getElementById('ecs').getAttribute('data-url');(document.getElementById('xjsd')|| doc...
if(!google.xjs){google.dstr=[];google.rein=[];window._=window._||{};window._._DumpException=function(e){throw e};if(google.timers&&google.timers.load.t){google.timers.load.t.xjsls=new Date().getTime();}google.dljp('/xjs/_/js/s/c,sb,cr,cdos,vm,tbui,mb...
function n(b,f,m){m=b.offsetHeight?m-b.offsetHeight:m;f-=m;f=Math.max(f,0);b.style.height=f+"px";return f}
view all matches for this distribution
view release on metacpan or search on metacpan
data/BankOfIreland/accountSummary_execution=e2s1 view on Meta::CPAN
<div class="qt_header"><br class="break" />
<h2>Quick Transfer</h2><a id="form:quickTransferSubview:addPayee" href="#" onclick="if(typeof jsfcljs == 'function'){jsfcljs(document.getElementById('form'),{'form:quickTransferSubview:addPayee':'form:quickTransferSubview:addPayee'},'');}return ...
<br class="clear" />
</div>
<fieldset>
<legend class="hidden_label">Quick Transfer</legend>
<div class="">
<label for="form:quickTransferSubview:quickTransferAccountDropDown" class="hidden_label">From Account1</label>
<!--
- Custom account drop down for quick transfer
view all matches for this distribution
view release on metacpan or search on metacpan
t/02-maintenance.html view on Meta::CPAN
<div class="main">
<div class="formHeadline" style="width:7em"><img src="/iob3/common/images/icon_hinweis.gif" width="15" height="15" alt="" /> Fehler</div>
<div class="formcontainer">
<form action="" method="post">
<fieldset class="fieldset">
<legend class="legend">Postbank <span lang="en">Online-Banking</span></legend>
<p class="pFormcontainer">
Sehr geehrter <span lang="en">Online-Banking</span> Nutzer,
wegen einer hohen Auslastung kommt es derzeit im Online-Banking zu
längeren Wartezeiten.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Finance/ChartHist.pm view on Meta::CPAN
}
unshift @formated_data, $graph_data->{$self->{symbols}[0]}[0];
$graph->plot(\@formated_data) or die $graph->error;
## Set the legend
$graph->set_legend( ["BHP", "PIXR"] );
## Keep a copy of the graph
$self->{graph} = $graph;
}
view all matches for this distribution
view release on metacpan or search on metacpan
CompanyNames/TextSupport.pm view on Meta::CPAN
legal legalism legalities legality legalization legalize legalized legalizers legalizes legalizing legally
legalisation legalise legalised legalising
legatee legatees
legation legations
legband legbanding legbands
legend legended legending legends
legget leggett
legibility legible legibly
legion legions
legionella legionellae
legionnaire legionnaires
CompanyNames/TextSupport.pm view on Meta::CPAN
legalize
legalized
legalizes
legalizing
legally
legend
legendary
legends
legged
leggings
legibility
legible
legibly
view all matches for this distribution
view release on metacpan or search on metacpan
t/data/kurs-transaksi-bi-2022-02-25.html view on Meta::CPAN
var myLineChart = new Chart(ctx, {
type: 'line',
data: data,
options: {
legend: {
display: false,
labels: {
display: false
}
},
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Finance/Quant/Charter.pm view on Meta::CPAN
}
}
sub plotlines {
my ($file, $stock, $x, $lines, $y_format) = @_;
my @legend;
my ($data, $colors) = ([], []);
$data->[0] = $x; # x-axis labels
for (0..$#{$lines}) {
$data->[(1+$_)] = $lines->[$_]->{data};
$colors->[$_] = $lines->[$_]->{color};
$legend[$_] = $lines->[$_]->{name};
}
my $graph = GD::Graph::lines->new(1024,420);
$graph->set (dclrs => $colors) or die $graph->error;
$graph->set_legend(@legend) or die $graph->error;
$graph->set (legend_placement => 'BC') or die $graph->error;
$graph->set(y_number_format => $y_format) if $y_format;
my $skipp = int(0.2*scalar(@{$data->[0]})) unless(!$data->[0]);
$skipp = 0 unless($skipp);
lib/Finance/Quant/Charter.pm view on Meta::CPAN
$graph->set (
title => "stock: $stock",
boxclr => 'black',
bgclr => 'dgray',
axislabelclr => 'white',
legendclr => 'white',
textclr => 'white',
r_margin => 20,
tick_length => -4,
y_long_ticks => 1,
axis_space => 10,
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Finance/Quant.pm view on Meta::CPAN
}
sub plotlines {
my ($file, $stock, $x, $lines, $y_format) = @_;
my @legend;
my ($data, $colors) = ([], []);
$data->[0] = $x; # x-axis labels
for (0..$#{$lines}) {
$data->[(1+$_)] = $lines->[$_]->{data};
$colors->[$_] = $lines->[$_]->{color};
$legend[$_] = $lines->[$_]->{name};
}
my $graph = GD::Graph::lines->new(740,420);
$graph->set (dclrs => $colors) or warn $graph->error;
$graph->set_legend(@legend) or warn $graph->error;
$graph->set (legend_placement => 'BC') or warn $graph->error;
$graph->set(y_number_format => $y_format) if $y_format;
$graph->set (
title => "stock: $stock",
boxclr => 'black',
bgclr => 'dgray',
axislabelclr => 'white',
legendclr => 'white',
textclr => 'white',
r_margin => 20,
tick_length => -4,
y_long_ticks => 1,
axis_space => 10,
view all matches for this distribution
view release on metacpan or search on metacpan
public/assets/css/main.css view on Meta::CPAN
.about-page{padding-top:70px;min-height:800px;position:relative}.about-page .mission{max-width:900px}.about-page .mission h2{text-align:center;font-weight:500;margin:0 auto 20px 0;color:rgba(255,255,255,0.9)}.about-page .mission p{font-weight:300;col...
Animate.css - http://daneden.me/animate
Licensed under the MIT license - http://opensource.org/licenses/MIT
Copyright (c) 2015 Daniel Eden
*/.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animati...
view all matches for this distribution
view release on metacpan or search on metacpan
root/static/css/form.css view on Meta::CPAN
padding-left: 5%;
padding-right: 5%;
padding-top: 2%;
padding-bottom: 3%;
}
form.valid fieldset legend {
font-weight: bolder;
font-size: 130%;
color: #000000;
}
form.valid fieldset p {
view all matches for this distribution
view release on metacpan or search on metacpan
share/passwords.txt view on Meta::CPAN
trouble
gunner
happy
fucking
gordon
legend
jessie
stella
qwert
eminem
arthur
share/passwords.txt view on Meta::CPAN
llama
littlema
libra
liberty1
leticia
legends
legenda
left
leeroy
l3tm31n
kumar
kfcnjxrf
share/passwords.txt view on Meta::CPAN
letmein3
letmein0
lerxst
leppard
lenny1
legendary
lauryn
lasagna
lapper
lapin
lamp
share/passwords.txt view on Meta::CPAN
lena12
legshow
leghorn
leggy
Legend1
legend1
leftie
leftee
leedsuni
leedsu
lee
share/passwords.txt view on Meta::CPAN
leonida
lena22
lemont
leiter
leihak
legends1
legend2
legend12
legato
leetah
leecher
ledge
leckmich
share/passwords.txt view on Meta::CPAN
len4ik
lemony
lemondrop
leman
legere
legendar
legal1
leeway
leeward
leeman
LEELEE
view all matches for this distribution
view release on metacpan or search on metacpan
share/templates/default/form_end.tt view on Meta::CPAN
[% IF render_hints.legend %]</fieldset>[% END %]
</form>
</div>
view all matches for this distribution
view release on metacpan or search on metacpan
AI/FreeHAL/Engine.pm view on Meta::CPAN
'bescheiden' => $data->{const}{ADJ},
'beschaeftigt' => $data->{const}{ADJ},
'besetzt' => $data->{const}{ADJ},
'beste' => $data->{const}{ADJ},
'best' => $data->{const}{ADJ},
'grundlegend' => $data->{const}{ADJ},
'zu' => $data->{const}{PREP},
'gehoeren' => $data->{const}{VERB},
'gehoert' => $data->{const}{VERB},
'mitten' => $data->{const}{PREP},
'unreif' => $data->{const}{ADJ},
view all matches for this distribution
view release on metacpan or search on metacpan
JS/js/jsopcode.def view on Meta::CPAN
*
* This file is best viewed with 116 columns:
01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345
*/
/* legend: op val name image len use def prec format */
/* Permanently-assigned bytecodes. */
OPDEF(JSOP_NOP, 0, "nop", NULL, 1, 0, 0, 0, JOF_BYTE)
OPDEF(JSOP_PUSH, 1, "push", NULL, 1, 0, 1, 0, JOF_BYTE)
OPDEF(JSOP_POPV, 2, "popv", NULL, 1, 1, 0, 0, JOF_BYTE)
view all matches for this distribution
view release on metacpan or search on metacpan
t/data/00_preface view on Meta::CPAN
The Arguments prefixed to the Books are taken, with very
slight alterations, from Hobbes' Translation of the
Odyssey.
It is hoped that the Introduction added to the second
edition may illustrate the growth of those national legends
on which Homer worked, and may elucidate the plot of the
Odyssey.
PREFACE TO THE THIRD EDITION.
t/data/00_preface view on Meta::CPAN
that nothing is known. We may conjecture that some contest
between peoples of more or less kindred stocks, who
occupied the isles and the eastern and western shores of
the Aegean, left a strong impression on the popular fancy.
Round the memories of this contest would gather many older
legends, myths, and stories, not peculiarly Greek or even
'Aryan,' which previously floated unattached, or were
connected with heroes whose fame was swallowed up by that
of a newer generation. It would be the work of minstrels,
priests, and poets, as the national spirit grew conscious
of itself, to shape all these materials into a definite
body of tradition. This is the rule of development--first
scattered stories, then the union of these into a NATIONAL
legend. The growth of later national legends, which we are
able to trace, historically, has generally come about in
this fashion. To take the best known example, we are able
to compare the real history of Charlemagne with the old
epic poems on his life and exploits. In these poems we find
that facts are strangely exaggerated, and distorted; that
purely fanciful additions are made to the true records,
that the more striking events of earlier history are
crowded into the legend of Charles, that mere fairy tales,
current among African as well as European peoples, are
transmuted into false history, and that the anonymous
characters of fairy tales are converted into historical
personages. We can also watch the process by which feigned
genealogies were constructed, which connected the princely
t/data/00_preface view on Meta::CPAN
are justified in supposing that, quite as little of the
real history of events can be extracted from the tale of
Troy, as from the Chansons de Geste.
By the time the Odyssey was composed, it is certain that a
poet had before him a well-arranged mass of legends and
traditions from which he might select his materials. The
author of the Iliad has an extremely full and curiously
consistent knowledge of the local traditions of Greece, the
memories which were cherished by Thebans, Pylians, people
of Mycenae, of Argos, and so on. The Iliad and the Odyssey
assume this knowledge in the hearers of the poems, and take
for granted some acquaintance with other legends, as with
the story of the Argonautic Expedition. Now that story
itself is a tissue of popular tales,--still current in many
distant lands,--but all woven by the Greek genius into the
history of Iason.
The history of the return of Odysseus as told in the
Odyssey, is in the same way, a tissue of old marchen.
These must have existed for an unknown length of time
before they gravitated into the cycle of the tale of Troy.
The extraordinary artistic skill with which legends and
myths, originally unconnected with each other, are woven
into the plot of the Odyssey, so that the marvels of savage
and barbaric fancy become indispensable parts of an
artistic whole, is one of the chief proofs of the unity of
authorship of that poem. We now go on to sketch the plot,
t/data/00_preface view on Meta::CPAN
shape of a detached marchen or fairy-tale among races who
never heard of Homer. And when we find the story among
Oghuzians, Esthonians, Basques, and Celts, it seems natural
to suppose that these people did not break a fragment out
of the Odyssey, but that the author of the Odyssey took
possession of a legend out of the great traditional store
of fiction. From the wide distribution of the tale, there
is reason to suppose that it is older than Homer, and that
it was not originally told of Odysseus, but was attached to
his legend, as floating jests of unknown authorship are
attributed to eminent wits. It has been remarked with truth
that in this episode Odysseus acts out of character, that
he is foolhardy as well as cunning. Yet the author of the
Odyssey, so far from merely dove-tailing this story at
random into his narrative, has made his whole plot turn on
t/data/00_preface view on Meta::CPAN
epic is probably the popular tale, known all over the
world, of the warrior who, on his return from a long
expedition, has great difficulty in making his prudent wife
recognise him. The incident occurs as a detached story in
China, and in most European countries it is told of a
crusader. 'We may suppose it to be older than the legend of
Troy, and to have gravitated into the cycle of that legend.
The years of the hero's absence are then filled up with
adventures (the Cyclops, Circe, the Phaeacians, the Sirens,
the descent into hell) which exist as scattered tales, or
are woven into the more elaborate epics of Gaels, Aztecs,
Hindoos, Tartars, South-Sea Islanders, Finns, Russians,
view all matches for this distribution
view release on metacpan or search on metacpan
lib/PXML/XHTML.pm view on Meta::CPAN
'a', 'abbr', 'acronym', 'address', 'applet', 'area', 'b', 'base',
'basefont', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'caption',
'center', 'cite', 'code', 'col', 'colgroup', 'dd', 'del', 'dfn', 'dir',
'div', 'dl', 'dt', 'em', 'fieldset', 'font', 'form', 'h1', 'h2', 'h3',
'h4', 'h5', 'h6', 'head', 'hr', 'html', 'i', 'iframe', 'img', 'input',
'ins', 'isindex', 'kbd', 'label', 'legend', 'li', 'link', 'map', 'menu',
'meta', 'noframes', 'noscript', 'object', 'ol', 'optgroup', 'option', 'p',
'param', 'pre', 'q', 's', 'samp', 'script', 'select', 'small',
'source', # not XHTML?, hack
'span', 'strike', 'strong', 'style', 'sub', 'sup', 'table', 'tbody', 'td',
'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'tt', 'u', 'ul', 'var',
view all matches for this distribution
view release on metacpan or search on metacpan
examples/radial.pl view on Meta::CPAN
my $chart = GD::Chart::Radial->new(500,500,1);
my $max = 31;
$chart->set(
legend => [qw/april may/],
title => 'Some simple graph',
y_max_value => $max,
y_tick_number => 5,
);
view all matches for this distribution
view release on metacpan or search on metacpan
examples/3d_bar_1.pl view on Meta::CPAN
use strict;
use GD::Chart;
## Data on Oceans
## - Need to add legend afterwards
my(@data) = (
[180, 106, 75],
[724, 355, 292]
);
view all matches for this distribution
view release on metacpan or search on metacpan
lib/GD/Graph/Cartesian.pm view on Meta::CPAN
This is the second best package that I could find on CPAN that supports scatter plots of X/Y data. However, it does not supports a zero based Y-axis for positive data. Otherwise this is a great package.
=head3 L<Chart>
This is a great package for its support of legends, layouts and labels but it only support equally spaced x axis data.
=head3 L<GD::Graph>
This is a great package for pie charts but for X/Y scatter plots it only supports equally spaced x axis data.
view all matches for this distribution
view release on metacpan or search on metacpan
my $data = shift;
$self->check_data($data) or return;
$self->init_graph() or return;
$self->setup_text() or return;
$self->setup_legend();
$self->setup_coords() or return;
$self->call_hooks(POST_INIT);
$self->draw_text();
$self->call_hooks(POST_TEXT);
unless (defined $self->{no_axes}) {
$self->call_hooks(POST_AXIS);
$self->draw_data() or return;
$self->call_hooks(POST_DATA);
$self->draw_values() or return;
$self->call_hooks(POST_VALUES);
$self->draw_legend();
$self->call_hooks(POST_LEGEND);
return $self->{graph}
};
}
view all matches for this distribution
view release on metacpan or search on metacpan
lib/GD/Graph/splined.pm view on Meta::CPAN
$graph->set(
x_label => 'X Label',
y_label => 'Y label',
title => 'A Splined Graph',
);
$graph->set_legend( 'one', 'two' );
$graph->plot(\@data);
open(OUT, ">splined.png") or die $!;
binmode OUT;
print OUT $graph->gd->png;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/GD/Graph/axestype3d.pm view on Meta::CPAN
# Inherit setup_text
# Inherit set_x_label_font
# Inherit set_y_label_font
# Inherit set_x_axis_font
# Inherit set_y_axis_font
# Inherit set_legend
# Inherit set_legend_font
# ----------------------------------------------------------
# Sub: init_graph
lib/GD/Graph/axestype3d.pm view on Meta::CPAN
$self->{'3d_shadows'}[$self->{acci}] = $self->set_clr( $self->_darken( _rgb($self->{accentclr}) ) );
$self->{'3d_highlights'}[$self->{valuesci}] = $self->set_clr( $self->_brighten( _rgb($self->{valuesclr}) ) );
$self->{'3d_shadows'}[$self->{valuesci}] = $self->set_clr( $self->_darken( _rgb($self->{valuesclr}) ) );
$self->{'3d_highlights'}[$self->{legendci}] = $self->set_clr( $self->_brighten( _rgb($self->{legendclr}) ) );
$self->{'3d_shadows'}[$self->{legendci}] = $self->set_clr( $self->_darken( _rgb($self->{legendclr}) ) );
if( $self->{boxclr} ) {
$self->{'3d_highlights'}[$self->{boxci}] = $self->set_clr( $self->_brighten( _rgb($self->{boxclr}) ) );
$self->{'3d_shadows'}[$self->{boxci}] = $self->set_clr( $self->_darken( _rgb($self->{boxclr}) ) );
} # end if
lib/GD/Graph/axestype3d.pm view on Meta::CPAN
# Inherit get_max_y
# Inherit get_min_y
# Inherit get_max_min_y_all
# Inherit _get_bottom
# Inherit val_to_pixel
# Inherit setup_legend
# [JW] Override draw_legend and reverse the drawing order
# if cumulate is enabled so legend matches data on chart
sub draw_legend
{
my $self = shift;
return unless defined $self->{legend};
my $xl = $self->{lg_xs} + $self->{legend_spacing};
my $y = $self->{lg_ys} + $self->{legend_spacing} - 1;
# If there's a frame, offset by the size and margin
$xl += $self->{legend_frame_margin} + $self->{legend_frame_size} if $self->{legend_frame_size};
$y += $self->{legend_frame_margin} + $self->{legend_frame_size} if $self->{legend_frame_size};
my $i = 0;
my $row = 1;
my $x = $xl; # start position of current element
my @legends = @{$self->{legend}};
my $i_step = 1;
# If we are working in cumulate mode, then reverse the drawing order
if( $self->{cumulate} ) {
@legends = reverse @legends;
$i = scalar(@legends);
$i = $self->{_data}->num_sets if $self->{_data}->num_sets < $i;
$i++;
$i_step = -1;
} # end if
foreach my $legend (@legends)
{
$i += $i_step;
# Legend for Pie goes over first set, and all points
# Works in either direction
last if $i > $self->{_data}->num_sets;
last if $i < 1;
my $xe = $x; # position within an element
next unless defined($legend) && $legend ne "";
$self->draw_legend_marker($i, $xe, $y);
$xe += $self->{legend_marker_width} + $self->{legend_spacing};
my $ys = int($y + $self->{lg_el_height}/2 - $self->{lgfh}/2);
$self->{gdta_legend}->set_text($legend);
$self->{gdta_legend}->draw($xe, $ys);
$x += $self->{lg_el_width};
if (++$row > $self->{lg_cols})
{
lib/GD/Graph/axestype3d.pm view on Meta::CPAN
$x = $xl;
}
}
# If there's a frame, draw it now
if( $self->{legend_frame_size} ) {
$x = $self->{lg_xs} + $self->{legend_spacing};
$y = $self->{lg_ys} + $self->{legend_spacing} - 1;
for $i ( 0 .. $self->{legend_frame_size} - 1 ) {
$self->{graph}->rectangle(
$x + $i,
$y + $i,
$x + $self->{lg_x_size} + 2 * $self->{legend_frame_margin} - $i - 1,
$y + $self->{lg_y_size} + 2 * $self->{legend_frame_margin} - $i - 1,
$self->{acci},
);
} # end for
} # end if
}
# Inherit draw_legend_marker
1;
view all matches for this distribution
view release on metacpan or search on metacpan
demos/draw_colors.pl view on Meta::CPAN
my $cols = int(sqrt(@color_names));
my $rows = int(@color_names/$cols)+1;
my $cell_width = 100;
my $cell_height = 50;
my $legend_height = 16;
my $width = $cols * $cell_width;
my $height = $rows * $cell_height;
my $img = GD::Simple->new($width,$height);
demos/draw_colors.pl view on Meta::CPAN
for (my $c=0; $c<$cols; $c++) {
for (my $r=0; $r<$rows; $r++) {
my $color = $color_names[$c*$rows + $r] or next;
my @topleft = ($c*$cell_width,$r*$cell_height);
my @botright = ($topleft[0]+$cell_width,$topleft[1]+$cell_height-$legend_height);
$img->bgcolor($color);
$img->fgcolor($color);
$img->rectangle(@topleft,@botright);
$img->moveTo($topleft[0]+2,$botright[1]+$legend_height-2);
$img->fgcolor('black');
$img->string($color);
}
}
view all matches for this distribution
view release on metacpan or search on metacpan
lib/GD/Graph/Map.pm view on Meta::CPAN
my %Defaults = ( #Default Href is JavaScript code, which do nothing
href => 'javascript:;',
lhref => 'javascript:;',
hrefs => [],
lhrefs => [],
#Default information and legend
info => 'x=%x y=%y',
legend => '%l',
#Line width for lines and linespoints graph
linewidth => 3,
);
my %No_Tags = ('img_src' => 0, 'img_usemap' => 0, 'img_ismap' => 0,
lib/GD/Graph/Map.pm view on Meta::CPAN
$s .= "$x, @{[$y + $lw]}, ";
} #foreach
chop $s; chop $s;
my $href = $self->{lhrefs}->[$_ - 1];
$href = $self->{lhref} unless defined($href);
$href =~ s/%l/$gr->{legend}->[$_ - 1]/g;
my $info = $self->{info};
$info =~ s/%l/$gr->{legend}->[$_ - 1]/g;
$s .= "\" Href=\"$href\" Title=\"$info\" Alt=\"$info\" onMouseOver=\"window.status=\'$info\'; return true;\" onMouseOut=\"window.status=\'\'; return true;\"";
if ($self->{newWindow} and not $href =~ /javascript:/i)
{ my $s_;
map
{ $s_ .= "$1=@{[$self->{$_}]}," if $_ =~ /window_(\w+)/i and $self->{$_};
lib/GD/Graph/Map.pm view on Meta::CPAN
chop $s_;
$s .= " Target=\"_$name\" onClick=\"window.open(\'\', \'_$name\', \'$s_\'); return true; \"";
} #if
$s .= ">\n";
} #foreach
$s .= $self->imagelegend($file, $data) if defined($gr->{legend});
$s .= "</Map>\n";
unless ($self->{noImgMarkup})
{ $s .= "<Img UseMap=#$name Src=\"$file\" border=0 Height=@{[$gr->{height}]} Width=@{[$gr->{width}]} ";
map
{ $s .= "$1=@{[$self->{$_}]} " if $_ =~ /img_(\w+)/i and $self->{$_};
lib/GD/Graph/Map.pm view on Meta::CPAN
my $href = ${$self->{hrefs}}[$_ - 1][$i];
$href = $self->{href} unless defined($href);
$href =~ s/%x/$data->[0][$i]/g; $href =~ s/%y/$data->[$_][$i]/g;
$href = $1.(sprintf "%$2f", $data->[0][$i]).$3 if ($href =~ /(^.*)%(\.\d)x(.*&)/);
$href = $1.(sprintf "%$2f", $data->[$_][$i]).$3 if ($href =~ /(^.*)%(\.\d)y(.*$)/);
$href =~ s/%l/@{$gr->{legend}}->[$_ - 1]/g;
my $info = $self->{info};
$info =~ s/%x/$data->[0][$i]/g; $info =~ s/%y/$data->[$_][$i]/g;
$info = $1.(sprintf "%$2f", $data->[0][$i]).$3 if ($info =~ /(^.*)%(\.\d)x(.*&)/);
$info = $1.(sprintf "%$2f", $data->[$_][$i]).$3 if ($info =~ /(^.*)%(\.\d)y(.*$)/);
$info =~ s/%l/@{$gr->{legend}}->[$_ - 1]/g;
$s .= "Href=\"$href\" Title=\"$info\" Alt=\"$info\" onMouseOver=\"window.status=\'$info\'; return true;\" onMouseOut=\"window.status=\'\'; return true;\"";
if ($self->{newWindow} and not $href =~ /javascript:/i)
{ my $s_;
map
{ $s_ .= "$1=".$self->{$_}."," if (($_ =~ /window_(\w*)/i) and ($self->{$_} != 0))
lib/GD/Graph/Map.pm view on Meta::CPAN
$s1 .= "$x, @{[$y + $lw]}, ";
} #foreach
chop $s1; chop $s1;
my $lhref = $self->{lhrefs}->[$_ - 1];
$lhref = $self->{lhref} unless defined($lhref);
$lhref =~ s/%l/$gr->{legend}->[$_ - 1]/g;
my $legend = $self->{legend};
$legend =~ s/%l/$gr->{legend}->[$_ - 1]/g;
$s .= "\t<Area Shape=polygon Coords=\"$s1\" Href=\"$lhref\" Title=\"$legend\" Alt=\"$legend\" onMouseOver=\"window.status=\'$legend\'; return true;\" onMouseOut=\"window.status=\'\'; return true;\"";
if ($self->{newWindow} and not $lhref =~ /javascript:/i)
{ my $s_;
map
{ $s_ .= "$1=@{[$self->{$_}]}," if $_ =~ /window_(\w+)/i and $self->{$_};
} keys %$self;
lib/GD/Graph/Map.pm view on Meta::CPAN
$s .= " Target=\"_$name\" onClick=\"window.open(\'\', \'_$name\', \'$s_\'); return true; \"";
} #if
$s .= ">\n"; $s1 = "";
} #if
}
$s .= $self->imagelegend($file, $data) if defined($gr->{legend});
$s .= "</Map>\n";
unless ($self->{noImgMarkup})
{ $s .= "<Img UseMap=#$name Src=\"$file\" border=0 Height=@{[$gr->{height}]} Width=@{[$gr->{width}]} ";
map
{ $s .= "$1=".($self->{$_})." " if ($_ =~ /img_(\w*)/i) and defined($self->{$_})
lib/GD/Graph/Map.pm view on Meta::CPAN
my $href = ${$self->{hrefs}}[$_ - 1][$i];
$href = $self->{href} unless defined($href);
$href =~ s/%x/$data->[0][$i]/g; $href =~ s/%y/$data->[$_][$i]/g;
$href = $1.(sprintf "%$2f", $data->[0][$i]).$3 if ($href =~ /(^.*)%(\.\d)x(.*$)/);
$href = $1.(sprintf "%$2f", $data->[$_][$i]).$3 if ($href =~ /(^.*)%(\.\d)y(.*$)/);
$href =~ s/%l/@{$gr->{legend}}->[$_ - 1]/g;
my $info = $self->{info};
$info =~ s/%x/$data->[0][$i]/g; $info =~ s/%y/$data->[$_][$i]/g;
$info = $1.(sprintf "%$2f", $data->[0][$i]).$3 if ($info =~ /(^.*)%(\.\d)x(.*$)/);
$info = $1.(sprintf "%$2f", $data->[$_][$i]).$3 if ($info =~ /(^.*)%(\.\d)y(.*$)/);
$info =~ s/%l/@{$gr->{legend}}->[$_ - 1]/g;
$s .= "Href=\"$href\" Title=\"$info\" Alt=\"$info\" onMouseOver=\"window.status=\'$info\'; return true;\" onMouseOut=\"window.status=\'\'; return true;\"";
if ($self->{newWindow} and not $href =~ /javascript:/i)
{ my $s_;
map
{ $s_ .= "$1=".$self->{$_}."," if (($_ =~ /window_(\w*)/i) and ($self->{$_} != 0))
lib/GD/Graph/Map.pm view on Meta::CPAN
$s .= " onClick=\"window.open(\'\', \'_$name\', \'$s_\'); return true;\"";
} #if
$s .= ">\n";
}
}
$s .= $self->imagelegend($file, $data) if defined($gr->{legend});
$s .= "</Map>\n";
unless ($self->{noImgMarkup})
{ $s .= "<Img UseMap=#$name Src=\"$file\" border=0 Height=@{[$gr->{height}]} Width=@{[$gr->{width}]} ";
map
{ $s .= "$1=".($self->{$_})." " if ($_ =~ /img_(\w*)/i) and defined($self->{$_})
lib/GD/Graph/Map.pm view on Meta::CPAN
return level_angle($a - 360) if $a > 360;
return level_angle($a + 360) if $a < 0;
return $a;
} #level_angle
sub imagelegend($$) #($file, \@data)
{ my $self = shift;
my $file = shift;
my $data = shift;
my $gr = $self->{GDGraph};
my $name = defined $self->{mapName} ? $self->{mapName} : time;
my $s = '';
my $xl = $gr->{lg_xs} + $gr->{legend_spacing};
my $y = $gr->{lg_ys} + $gr->{legend_spacing} - 1;
my $i = 0;
my $row = 1;
my $x = $xl;
foreach my $legend (@{$gr->{legend}})
{ $i++;
last if $i > $gr->{_data}->num_sets;
my $xe = $x;
next unless defined($legend) && $legend ne "";
my $lhref = @{$self->{lhrefs}}->[$i - 1];
$lhref = $self->{lhref} unless defined($lhref);
$lhref =~ s/%l/$_/g;
$legend = $self->{legend};
$legend =~ s/%l/$_/g;
my $ye = $y + int($gr->{lg_el_height}/2 - $gr->{legend_marker_height}/2);
$s .= "\t<Area Shape=rect Coords=\"$xe, $ye, ".($xe + $gr->{legend_marker_width}).", ".($ye + $gr->{legend_marker_height})."\" Href=\"$lhref\" Title=\"$legend\" Alt=\"$legend\" onMouseOver=\"window.status=\'$legend\'; return true;\" onMouseOut=\"...
if ($self->{newWindow} and $lhref ne $self->{href}) #$xe + $gr->{legend_marker_width}
{ my $s_;
map
{ $s_ .= "$1=".$self->{$_}."," if (($_ =~ /window_(\w*)/i) and ($self->{$_} != 0))
} keys %{$self};
chop $s_;
$s .= " Target=_$name";
$s .= " onClick=\"window.open(\'\', \'_$name\', \'$s_\'); return true;\"";
} #if
$s .= ">\n";
$xe += $self->{legend_marker_width} + $self->{legend_spacing};
$x += $gr->{lg_el_width};
if (++$row > $gr->{lg_cols})
{ $row = 1;
$y += $gr->{lg_el_height};
$x = $xl;
}
}
return $s;
} #imagelegend
1;
__END__
lib/GD/Graph/Map.pm view on Meta::CPAN
binmode PNG; #only for Windows like platforms
print PNG $graph->plot(\@data)->png;
close PNG;
Then create B<GD::Graph::Map> object. And set options using set routine, or set it
in constructor immediately. If it is necessary create hrefs and legend arrays:
$map = new GD::Graph::Map($graph, newWindow => 1);
$map->set(info => "%x slice contains %.1p% of %s (%x)");
lib/GD/Graph/Map.pm view on Meta::CPAN
=over *
=item B<hrefs>, B<lhrefs>
Sets hyper reference for each data (hrefs), and for each legend (lhrefs).
Array @hrefs must the same size as arrays in @data list, otherwise null
elements of @hrefs will set to default. Similarly array @lhrefs must the same
size as the legend array. Default uses the simple JavaScript code 'javascript:;'
instead reference, which do nothing (but in the some browsers it can work incorrectly).
Example of I<@hrefs> array:
for the I<GD::Graph::pie> object:
lib/GD/Graph/Map.pm view on Meta::CPAN
then @hrefs = (["1.htm","2.htm","3.htm"],
["4.htm","5.htm","6.htm"]);
Example of I<@lhrefs> array;
if @legend = [ 'one', 'two','three'];
then @lhrefs = ["1.htm","2.htm","3.htm"];
=item B<info>, B<legend>
Set information string for the data and for the legend. It will be displayed in the status line
of your browser. Format of this string the same for each data, but you can use special
symbols for receive individual information. Now available following symbols:
I<%x> - Will be replaced on the x values in @data (first array)
I<%y> - Will be replaced on the y values in @data (other arrays)
I<%s> - Will be replaced on the sum of all y values.
I<%l> - Will be replaced on the legend. For all objects, except the B<GD::Graph::pie> object.
I<%p> - Will be replaced on the value, which show what part from all contains this data
(in percentages).
I<%s> and I<%p> symbols can useing only in the B<GD::Graph::pie> object. I<%l> symbol
vice versa available for all objects, except the B<GD::Graph::pie> object. And I<%x>, I<%y>
lib/GD/Graph/Map.pm view on Meta::CPAN
objects.
For the numerical parameters (%x, %y, %s and %p) you can use special format
(the same as uses sprintf routine) for round data: %.d{x|y|p|s}, where 'd' is a digit
from 0 to 9.
For example %.0p or %.3x. It is desirable uses if %x, %y, %s or %p is the floating numbers.
Default is 'x=%x y=%y' for info, and '%l' for legend.
=item B<img_*>
You can set any attribute in the IMG tag (except UseMap, Src, Width, Height and Border,
they will be set automatically) use set routine: set(img_option => value), where 'option'
view all matches for this distribution
view release on metacpan or search on metacpan
$self->set_x_label_font(GD::gdSmallFont);
$self->set_y_label_font(GD::gdSmallFont);
$self->set_x_axis_font(GD::gdTinyFont);
$self->set_y_axis_font(GD::gdTinyFont);
$self->set_legend_font(GD::gdTinyFont);
$self->set_values_font(GD::gdTinyFont);
}
# PRIVATE
sub set_max_min
view all matches for this distribution
view release on metacpan or search on metacpan
boxclr => undef, # Fill colour for box axes, default: not used
accentclr => 'gray', # bar, area and pie outlines.
labelclr => 'dblue', # labels on axes
axislabelclr => 'dblue', # values on axes
legendclr => 'dblue', # Text for the legend
textclr => 'dblue', # All text, apart from the following 2
valuesclr => 'dblue', # values printed above the points
# data set colours
$self->{tci} = $self->set_clr(_rgb($self->{textclr}));
$self->{lci} = $self->set_clr(_rgb($self->{labelclr}));
$self->{alci} = $self->set_clr(_rgb($self->{axislabelclr}));
$self->{acci} = $self->set_clr(_rgb($self->{accentclr}));
$self->{valuesci} = $self->set_clr(_rgb($self->{valuesclr}));
$self->{legendci} = $self->set_clr(_rgb($self->{legendclr}));
$self->{boxci} = $self->set_clr(_rgb($self->{boxclr}))
if $self->{boxclr};
$self->{graph}->transparent($self->{bgci}) if $self->{transparent};
$self->{graph}->interlaced( $self->{interlaced} || undef ); # required by GD.pm
Depth of a shadow, positive for right/down shadow, negative for left/up
shadow, 0 for no shadow (default).
Also see the C<shadowclr> and C<bar_spacing> options.
=item labelclr, axislabelclr, legendclr, valuesclr, textclr
Text Colours used for the chart: label (labels for the axes or pie),
axis label (misnomer: values printed along the axes, or on a pie slice),
legend text, shown values text, and all other text.
All colours should have a valid value as described in L<"COLOURS">.
=item dclrs (short for datacolours)
Default: lines
=back
=head2 Graph legends (axestype graphs only)
At the moment legend support is minimal.
B<Methods>
=over 4
=item $graph-E<gt>set_legend(I<@legend_keys>);
Sets the keys for the legend. The elements of @legend_keys correspond
to the data sets as provided to I<plot()>.
If a key is I<undef> or an empty string, the legend entry will be skipped.
=item $graph-E<gt>set_legend_font(I<font name>);
Sets the font for the legend text (see L<"FONTS">).
Default: GD::gdTinyFont.
=back
B<Options>
=over 4
=item legend_placement
Where to put the legend. This should be a two letter key of the form:
'B[LCR]|R[TCB]'. The first letter indicates the placement (I<B>ottom or
I<R>ight), and the second letter the alignment (I<L>eft,
I<R>ight, I<C>enter, I<T>op, or I<B>ottom).
Default: 'BC'
If the legend is placed at the bottom, some calculations will be made
to ensure that there is some 'intelligent' wrapping going on. if the
legend is placed at the right, all entries will be placed below each
other.
=item legend_spacing
The number of pixels to place around a legend item, and between a
legend 'marker' and the text.
Default: 4
=item legend_marker_width, legend_marker_height
The width and height of a legend 'marker' in pixels.
Defaults: 12, 8
=item lg_cols
If you, for some reason, need to force the legend at the bottom to
have a specific number of columns, you can use this.
Default: computed
=back
things, since all font handling in GD::Graph is delegated to there.
Examples:
$graph->set_title_font('/fonts/arial.ttf', 18);
$graph->set_legend_font(gdTinyFont);
$graph->set_legend_font(
['verdana', 'arial', gdMediumBoldFont], 12)
(The above discussion is based on GD::Text 0.65. Older versions have
more restrictive behaviour).
view all matches for this distribution