-
Notifications
You must be signed in to change notification settings - Fork 4
/
sparkline.pl
111 lines (95 loc) · 3.22 KB
/
sparkline.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#!/usr/bin/perl
use strict;
use Chart::Clicker;
use Chart::Clicker::Context;
use Chart::Clicker::Data::DataSet;
use Chart::Clicker::Data::Marker;
use Chart::Clicker::Data::Series;
use Chart::Clicker::Renderer::Point;
use Geometry::Primitive::Rectangle;
use Graphics::Color::RGB;
my $cc = Chart::Clicker->new(width => 500, height => 50, format => 'pdf');
my $series = Chart::Clicker::Data::Series->new(
keys => [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24],
values => [ 5.8, 5.0, 4.9, 4.8, 4.5, 4.25, 3.5, 2.9, 2.5, 1.8, .9, .8, .7, 1.1, 1.7, 2.5, 3.0, 4.5, 5.0, 4.9, 4.7, 4.8, 4.2, 4.4],
);
my $series2 = Chart::Clicker::Data::Series->new(
keys => [ 24 ],
values => [ 4.4 ]
);
my $series3 = Chart::Clicker::Data::Series->new(
keys => [ 13 ],
values => [ .7 ]
);
my $ds = Chart::Clicker::Data::DataSet->new(series => [ $series ]);
$cc->add_to_datasets($ds);
my $defctx = $cc->get_context('default');
my $highds = Chart::Clicker::Data::DataSet->new(series => [ $series2 ]);
$cc->add_to_datasets($highds);
my $highctx = Chart::Clicker::Context->new(
name => 'high',
renderer => Chart::Clicker::Renderer::Point->new(
shape => Geometry::Primitive::Circle->new(
radius => 5
),
shape_brush => Graphics::Primitive::Brush->new(
width => 1,
color => Graphics::Color::RGB->new(red => .95, green => .94, blue => .92)
)
),
range_axis => $defctx->range_axis,
domain_axis => $defctx->domain_axis
);
$cc->add_to_contexts($highctx);
$highds->context('high');
#
my $noteds = Chart::Clicker::Data::DataSet->new(series => [ $series3 ]);
$cc->add_to_datasets($noteds);
my $notectx = Chart::Clicker::Context->new(
name => 'notable',
renderer => Chart::Clicker::Renderer::Point->new(
shape => Geometry::Primitive::Circle->new(
radius => 5
),
shape_brush => Graphics::Primitive::Brush->new(
width => 1,
color => Graphics::Color::RGB->new(red => .95, green => .94, blue => .92)
)
),
range_axis => $defctx->range_axis,
domain_axis => $defctx->domain_axis
);
$cc->add_to_contexts($notectx);
$noteds->context('notable');
my $grey = Graphics::Color::RGB->new(
red => .36, green => .36, blue => .36, alpha => 1
);
my $moregrey = Graphics::Color::RGB->new(
red => .71, green => .71, blue => .71, alpha => 1
);
my $orange = Graphics::Color::RGB->new(
red => .88, green => .48, blue => .09, alpha => 1
);
# my $mark = Chart::Clicker::Data::Marker->new(value => 2, value2 => 4);
# $mark->brush->color(
# Graphics::Color::RGB->new(red => 0, green => 0, blue => 0, alpha => .15)
# );
# $mark->inside_color(
# Graphics::Color::RGB->new(red => 0, green => 0, blue => 0, alpha => .15)
# );
# $defctx->add_marker($mark);
$cc->background_color(
Graphics::Color::RGB->new(red => .95, green => .94, blue => .92)
);
$cc->color_allocator->colors([ $grey, $orange, $moregrey ]);
$cc->plot->grid->visible(0);
$cc->legend->visible(0);
$cc->padding(2);
$cc->border->width(0);
$defctx->range_axis->hidden(1);
$defctx->range_axis->fudge_amount(.2);
$defctx->domain_axis->hidden(1);
$defctx->domain_axis->fudge_amount(.1);
$defctx->renderer->brush->width(3);
$cc->draw;
$cc->write('foo.pdf')