● A b o u t
● S p o n s o r
● g r e p : : c p a n
● R e c e n t
● F A Q
● T o o l s
● A P I
● I d e n t i t i e s
● P r o f i l e
● F a v o r i t e s
●
L o g o u t
●
G i t H u b
●
T w i t t e r
●
G o o g l e
T h e L o n d o n P e r l a n d R a k u W o r k s h o p t a k e s p l a c e o n 2 6 t h O c t 2 0 2 4 . I f
y o u r c o m p a n y d e p e n d s o n P e r l , p l e a s e c o n s i d e r s p o n s o r i n g a n d / o r a t t e n d i n g .
1 5 D e c 2 0 1 6 0 3 : 4 9 : 4 4 U T C
●
D i s t r i b u t i o n : C h a r t - C l i c k e r
●
M o d u l e v e r s i o n : 2 . 9 0
●
S o u r c e
( r a w )
●
B r o w s e
( r a w )
●
C h a n g e s
●
●
●
R e p o s i t o r y
●
I s s u e s
●
T e s t e r s
( 1 4 4 0 / 18 / 0 )
●
K w a l i t e e
B u s f a c t o r : 0
●
7 3 . 5 2 % C o v e r a g e
●
L i c e n s e : p e r l _ 5
● A c t i v i t y
2 4 m o n t h
● T o o l s
●
D o w n l o a d ( 7 2 . 0 3 K B )
●
M e t a C P A N E x p l o r e r
●
P e r m i s s i o n s
●
S u b s c r i b e t o d i s t r i b u t i o n
●
I n s t a l l I n s t r u c t i o n s
●
Jump to version
2.90
(GPHAT on 2016-12-15)
2.89
(GPHAT on 2016-12-15)
2.88
(GPHAT on 2014-04-01)
2.87
(GPHAT on 2014-01-25)
2.86
(GPHAT on 2013-06-05)
2.85
(GPHAT on 2013-03-23)
2.84
(GPHAT on 2013-01-23)
2.83
(GPHAT on 2012-06-22)
2.82
(GPHAT on 2012-06-19)
2.81
(GPHAT on 2012-03-19)
2.80
(GPHAT on 2012-03-05)
2.79
(GPHAT on 2012-02-18)
2.78
(GPHAT on 2012-02-16)
2.77
(GPHAT on 2012-02-13)
2.76
(GPHAT on 2011-12-14)
2.75
(GPHAT on 2011-12-05)
2.74
(GPHAT on 2011-11-13)
2.73
(GPHAT on 2011-11-04)
2.72
(GPHAT on 2011-09-05)
2.71
(GPHAT on 2011-08-26)
2.70
(GPHAT on 2011-08-07)
'
2.69
(GPHAT on 2011-06-02)
2.68
(GPHAT on 2011-05-13)
2.67
(GPHAT on 2011-02-19)
2.66
(GPHAT on 2011-02-17)
2.65
(GPHAT on 2010-07-21)
2.64
(GPHAT on 2010-05-09)
2.63
(GPHAT on 2010-05-09)
2.62
(GPHAT on 2010-04-11)
2.61
(GPHAT on 2010-04-10)
2.60
(GPHAT on 2010-03-20)
2.59
(GPHAT on 2010-03-08)
2.58
(GPHAT on 2010-01-25)
2.57
(GPHAT on 2010-01-24)
2.56
(GPHAT on 2010-01-13)
2.54
(GPHAT on 2010-01-01)
2.53
(GPHAT on 2009-12-17)
2.52
(GPHAT on 2009-12-09)
2.51
(GPHAT on 2009-12-02)
2.50
(GPHAT on 2009-11-29)
2.49
(GPHAT on 2009-11-27)
2.48
(GPHAT on 2009-11-26)
2.47
(GPHAT on 2009-11-26)
2.46
(GPHAT on 2009-11-26)
2.45
(GPHAT on 2009-11-26)
2.44
(GPHAT on 2009-09-27)
2.42
(GPHAT on 2009-08-23)
2.41
(GPHAT on 2009-07-30)
2.40
(GPHAT on 2009-07-13)
2.39
(GPHAT on 2009-07-12)
2.38
(GPHAT on 2009-07-12)
2.37
(GPHAT on 2009-07-06)
2.36
(GPHAT on 2009-07-01)
2.35
(GPHAT on 2009-06-28)
2.34
(GPHAT on 2009-06-13)
2.33
(GPHAT on 2009-05-27)
2.32
(GPHAT on 2009-05-23)
2.31
(GPHAT on 2009-05-14)
2.30
(GPHAT on 2009-05-11)
2.29
(GPHAT on 2009-05-11)
2.28
(GPHAT on 2009-05-10)
2.27
(GPHAT on 2009-05-09)
2.26
(GPHAT on 2009-05-09)
2.24
(GPHAT on 2009-05-02)
2.23
(GPHAT on 2009-04-28)
2.22
(GPHAT on 2009-04-05)
2.21
(GPHAT on 2009-03-31)
2.20
(GPHAT on 2009-03-28)
2.19
(GPHAT on 2009-03-24)
2.18
(GPHAT on 2009-02-14)
2.17
(GPHAT on 2008-12-21)
2.16
(GPHAT on 2008-12-16)
2.15
(GPHAT on 2008-12-14)
2.14
(GPHAT on 2008-12-01)
2.13
(GPHAT on 2008-10-05)
2.12
(GPHAT on 2008-10-01)
2.11
(GPHAT on 2008-09-24)
2.10
(GPHAT on 2008-09-23)
2.09
(GPHAT on 2008-09-09)
2.08
(GPHAT on 2008-09-08)
2.07
(GPHAT on 2008-09-03)
2.06
(GPHAT on 2008-08-31)
2.05
(GPHAT on 2008-08-29)
2.04
(GPHAT on 2008-08-28)
2.03
(GPHAT on 2008-08-27)
2.02
(GPHAT on 2008-08-27)
2.01
(GPHAT on 2008-08-27)
2.00
(GPHAT on 2008-08-20)
1.99_11 DEV
(GPHAT on 2008-08-20)
1.99_10 DEV
(GPHAT on 2008-08-19)
1.99_09 DEV
(GPHAT on 2008-08-19)
1.99_08 DEV
(GPHAT on 2008-08-18)
1.99_07 DEV
(GPHAT on 2008-08-14)
1.99_06 DEV
(GPHAT on 2008-08-14)
1.99_05 DEV
(GPHAT on 2008-08-12)
1.99_04 DEV
(GPHAT on 2008-08-06)
1.99_03 DEV
(GPHAT on 2008-08-05)
1.99_02 DEV
(GPHAT on 2008-07-21)
1.99_01 DEV
(GPHAT on 2008-07-17)
1.4.2
(GPHAT on 2007-12-19)
1.4.1
(GPHAT on 2007-11-26)
1.4.0
(GPHAT on 2007-10-20)
1.3.0
(GPHAT on 2007-10-15)
1.2.3
(GPHAT on 2007-10-12)
1.2.2
(GPHAT on 2007-10-06)
1.2.1
(GPHAT on 2007-10-04)
1.2.0
(GPHAT on 2007-10-04)
1.1.8
(GPHAT on 2007-09-01)
1.1.7
(GPHAT on 2007-08-31)
1.1.6
(GPHAT on 2007-03-10)
1.1.5
(GPHAT on 2007-02-24)
1.1.4
(GPHAT on 2007-01-04)
1.1.3
(GPHAT on 2006-10-22)
1.1.2
(GPHAT on 2006-10-21)
1.1.1
(GPHAT on 2006-09-18)
1.1.0
(GPHAT on 2006-09-15)
1.0.7
(GPHAT on 2006-09-13)
1.0.6
(GPHAT on 2006-09-10)
1.0.4
(GPHAT on 2006-09-01)
1.0.3
(GPHAT on 2006-08-16)
1.0.2
(GPHAT on 2006-08-11)
1.0.1
(GPHAT on 2006-08-10)
1.0.0
(GPHAT on 2006-08-05)
0.9.7
(GPHAT on 2006-06-12)
0.9.6
(GPHAT on 2006-06-09)
0.9.5
(GPHAT on 2006-05-23)
0.9.2
(GPHAT on 2006-05-11)
0.9.0
(GPHAT on 2006-05-10)
●
Diff with version
2.90
(GPHAT on 2016-12-15)
2.89
(GPHAT on 2016-12-15)
2.88
(GPHAT on 2014-04-01)
2.87
(GPHAT on 2014-01-25)
2.86
(GPHAT on 2013-06-05)
2.85
(GPHAT on 2013-03-23)
2.84
(GPHAT on 2013-01-23)
2.83
(GPHAT on 2012-06-22)
2.82
(GPHAT on 2012-06-19)
2.81
(GPHAT on 2012-03-19)
2.80
(GPHAT on 2012-03-05)
2.79
(GPHAT on 2012-02-18)
2.78
(GPHAT on 2012-02-16)
2.77
(GPHAT on 2012-02-13)
2.76
(GPHAT on 2011-12-14)
2.75
(GPHAT on 2011-12-05)
2.74
(GPHAT on 2011-11-13)
2.73
(GPHAT on 2011-11-04)
2.72
(GPHAT on 2011-09-05)
2.71
(GPHAT on 2011-08-26)
2.70
(GPHAT on 2011-08-07)
'
2.69
(GPHAT on 2011-06-02)
2.68
(GPHAT on 2011-05-13)
2.67
(GPHAT on 2011-02-19)
2.66
(GPHAT on 2011-02-17)
2.65
(GPHAT on 2010-07-21)
2.64
(GPHAT on 2010-05-09)
2.63
(GPHAT on 2010-05-09)
2.62
(GPHAT on 2010-04-11)
2.61
(GPHAT on 2010-04-10)
2.60
(GPHAT on 2010-03-20)
2.59
(GPHAT on 2010-03-08)
2.58
(GPHAT on 2010-01-25)
2.57
(GPHAT on 2010-01-24)
2.56
(GPHAT on 2010-01-13)
2.54
(GPHAT on 2010-01-01)
2.53
(GPHAT on 2009-12-17)
2.52
(GPHAT on 2009-12-09)
2.51
(GPHAT on 2009-12-02)
2.50
(GPHAT on 2009-11-29)
2.49
(GPHAT on 2009-11-27)
2.48
(GPHAT on 2009-11-26)
2.47
(GPHAT on 2009-11-26)
2.46
(GPHAT on 2009-11-26)
2.45
(GPHAT on 2009-11-26)
2.44
(GPHAT on 2009-09-27)
2.42
(GPHAT on 2009-08-23)
2.41
(GPHAT on 2009-07-30)
2.40
(GPHAT on 2009-07-13)
2.39
(GPHAT on 2009-07-12)
2.38
(GPHAT on 2009-07-12)
2.37
(GPHAT on 2009-07-06)
2.36
(GPHAT on 2009-07-01)
2.35
(GPHAT on 2009-06-28)
2.34
(GPHAT on 2009-06-13)
2.33
(GPHAT on 2009-05-27)
2.32
(GPHAT on 2009-05-23)
2.31
(GPHAT on 2009-05-14)
2.30
(GPHAT on 2009-05-11)
2.29
(GPHAT on 2009-05-11)
2.28
(GPHAT on 2009-05-10)
2.27
(GPHAT on 2009-05-09)
2.26
(GPHAT on 2009-05-09)
2.24
(GPHAT on 2009-05-02)
2.23
(GPHAT on 2009-04-28)
2.22
(GPHAT on 2009-04-05)
2.21
(GPHAT on 2009-03-31)
2.20
(GPHAT on 2009-03-28)
2.19
(GPHAT on 2009-03-24)
2.18
(GPHAT on 2009-02-14)
2.17
(GPHAT on 2008-12-21)
2.16
(GPHAT on 2008-12-16)
2.15
(GPHAT on 2008-12-14)
2.14
(GPHAT on 2008-12-01)
2.13
(GPHAT on 2008-10-05)
2.12
(GPHAT on 2008-10-01)
2.11
(GPHAT on 2008-09-24)
2.10
(GPHAT on 2008-09-23)
2.09
(GPHAT on 2008-09-09)
2.08
(GPHAT on 2008-09-08)
2.07
(GPHAT on 2008-09-03)
2.06
(GPHAT on 2008-08-31)
2.05
(GPHAT on 2008-08-29)
2.04
(GPHAT on 2008-08-28)
2.03
(GPHAT on 2008-08-27)
2.02
(GPHAT on 2008-08-27)
2.01
(GPHAT on 2008-08-27)
2.00
(GPHAT on 2008-08-20)
1.99_11 DEV
(GPHAT on 2008-08-20)
1.99_10 DEV
(GPHAT on 2008-08-19)
1.99_09 DEV
(GPHAT on 2008-08-19)
1.99_08 DEV
(GPHAT on 2008-08-18)
1.99_07 DEV
(GPHAT on 2008-08-14)
1.99_06 DEV
(GPHAT on 2008-08-14)
1.99_05 DEV
(GPHAT on 2008-08-12)
1.99_04 DEV
(GPHAT on 2008-08-06)
1.99_03 DEV
(GPHAT on 2008-08-05)
1.99_02 DEV
(GPHAT on 2008-07-21)
1.99_01 DEV
(GPHAT on 2008-07-17)
1.4.2
(GPHAT on 2007-12-19)
1.4.1
(GPHAT on 2007-11-26)
1.4.0
(GPHAT on 2007-10-20)
1.3.0
(GPHAT on 2007-10-15)
1.2.3
(GPHAT on 2007-10-12)
1.2.2
(GPHAT on 2007-10-06)
1.2.1
(GPHAT on 2007-10-04)
1.2.0
(GPHAT on 2007-10-04)
1.1.8
(GPHAT on 2007-09-01)
1.1.7
(GPHAT on 2007-08-31)
1.1.6
(GPHAT on 2007-03-10)
1.1.5
(GPHAT on 2007-02-24)
1.1.4
(GPHAT on 2007-01-04)
1.1.3
(GPHAT on 2006-10-22)
1.1.2
(GPHAT on 2006-10-21)
1.1.1
(GPHAT on 2006-09-18)
1.1.0
(GPHAT on 2006-09-15)
1.0.7
(GPHAT on 2006-09-13)
1.0.6
(GPHAT on 2006-09-10)
1.0.4
(GPHAT on 2006-09-01)
1.0.3
(GPHAT on 2006-08-16)
1.0.2
(GPHAT on 2006-08-11)
1.0.1
(GPHAT on 2006-08-10)
1.0.0
(GPHAT on 2006-08-05)
0.9.7
(GPHAT on 2006-06-12)
0.9.6
(GPHAT on 2006-06-09)
0.9.5
(GPHAT on 2006-05-23)
0.9.2
(GPHAT on 2006-05-11)
0.9.0
(GPHAT on 2006-05-10)
● D e p e n d e n c i e s
● C a r p
● C l a s s : : L o a d
● C o l o r : : S c h e m e
● D a t e T i m e
● D a t e T i m e : : S e t
● E n g l i s h
● G e o m e t r y : : P r i m i t i v e : : A r c
● G e o m e t r y : : P r i m i t i v e : : C i r c l e
● G e o m e t r y : : P r i m i t i v e : : P o i n t
● G r a p h i c s : : C o l o r : : R G B
● G r a p h i c s : : P r i m i t i v e : : B o r d e r
● G r a p h i c s : : P r i m i t i v e : : B r u s h
● G r a p h i c s : : P r i m i t i v e : : C a n v a s
● G r a p h i c s : : P r i m i t i v e : : C o m p o n e n t
● G r a p h i c s : : P r i m i t i v e : : C o n t a i n e r
● G r a p h i c s : : P r i m i t i v e : : D r i v e r : : C a i r o
● G r a p h i c s : : P r i m i t i v e : : F o n t
● G r a p h i c s : : P r i m i t i v e : : I n s e t s
● G r a p h i c s : : P r i m i t i v e : : O p e r a t i o n : : F i l l
● G r a p h i c s : : P r i m i t i v e : : O p e r a t i o n : : S t r o k e
● G r a p h i c s : : P r i m i t i v e : : O r i e n t e d
● G r a p h i c s : : P r i m i t i v e : : P a i n t : : G r a d i e n t : : L i n e a r
● G r a p h i c s : : P r i m i t i v e : : P a i n t : : G r a d i e n t : : R a d i a l
● G r a p h i c s : : P r i m i t i v e : : P a i n t : : S o l i d
● G r a p h i c s : : P r i m i t i v e : : P a t h
● G r a p h i c s : : P r i m i t i v e : : T e x t B o x
● L a y o u t : : M a n a g e r : : A b s o l u t e
● L a y o u t : : M a n a g e r : : A x i s
● L a y o u t : : M a n a g e r : : C o m p a s s
● L a y o u t : : M a n a g e r : : F l o w
● L a y o u t : : M a n a g e r : : G r i d
● L a y o u t : : M a n a g e r : : S i n g l e
● L i s t : : U t i l
● M a t h : : T r i g
● M o o s e
● M o o s e : : R o l e
● M o o s e : : U t i l
● M o o s e : : U t i l : : T y p e C o n s t r a i n t s
● P O S I X
● S c a l a r : : U t i l
● c o n s t a n t
● s t r i c t
● w a r n i n g s
●
R e v e r s e d e p e n d e n c i e s
●
C P A N T e s t e r s L i s t
●
D e p e n d e n c y g r a p h
● P e r m a l i n k s
●
T h i s v e r s i o n
●
L a t e s t v e r s i o n
+ + e d b y :
2 0 P A U S E u s e r s
1 3 n o n - P A U S E u s e r s
C o r y G W a t s o n
/
2.90
(GPHAT on 2016-12-15)
2.89
(GPHAT on 2016-12-15)
2.88
(GPHAT on 2014-04-01)
2.87
(GPHAT on 2014-01-25)
2.86
(GPHAT on 2013-06-05)
2.85
(GPHAT on 2013-03-23)
2.84
(GPHAT on 2013-01-23)
2.83
(GPHAT on 2012-06-22)
2.82
(GPHAT on 2012-06-19)
2.81
(GPHAT on 2012-03-19)
2.80
(GPHAT on 2012-03-05)
2.79
(GPHAT on 2012-02-18)
2.78
(GPHAT on 2012-02-16)
2.77
(GPHAT on 2012-02-13)
2.76
(GPHAT on 2011-12-14)
2.75
(GPHAT on 2011-12-05)
2.74
(GPHAT on 2011-11-13)
2.73
(GPHAT on 2011-11-04)
2.72
(GPHAT on 2011-09-05)
2.71
(GPHAT on 2011-08-26)
2.70
(GPHAT on 2011-08-07)
'
2.69
(GPHAT on 2011-06-02)
2.68
(GPHAT on 2011-05-13)
2.67
(GPHAT on 2011-02-19)
2.66
(GPHAT on 2011-02-17)
2.65
(GPHAT on 2010-07-21)
2.64
(GPHAT on 2010-05-09)
2.63
(GPHAT on 2010-05-09)
2.62
(GPHAT on 2010-04-11)
2.61
(GPHAT on 2010-04-10)
2.60
(GPHAT on 2010-03-20)
2.59
(GPHAT on 2010-03-08)
2.58
(GPHAT on 2010-01-25)
2.57
(GPHAT on 2010-01-24)
2.56
(GPHAT on 2010-01-13)
2.54
(GPHAT on 2010-01-01)
2.53
(GPHAT on 2009-12-17)
2.52
(GPHAT on 2009-12-09)
2.51
(GPHAT on 2009-12-02)
2.50
(GPHAT on 2009-11-29)
2.49
(GPHAT on 2009-11-27)
2.48
(GPHAT on 2009-11-26)
2.47
(GPHAT on 2009-11-26)
2.46
(GPHAT on 2009-11-26)
2.45
(GPHAT on 2009-11-26)
2.44
(GPHAT on 2009-09-27)
2.42
(GPHAT on 2009-08-23)
2.41
(GPHAT on 2009-07-30)
2.40
(GPHAT on 2009-07-13)
2.39
(GPHAT on 2009-07-12)
2.38
(GPHAT on 2009-07-12)
2.37
(GPHAT on 2009-07-06)
2.36
(GPHAT on 2009-07-01)
2.35
(GPHAT on 2009-06-28)
2.34
(GPHAT on 2009-06-13)
2.33
(GPHAT on 2009-05-27)
2.32
(GPHAT on 2009-05-23)
2.31
(GPHAT on 2009-05-14)
2.30
(GPHAT on 2009-05-11)
2.29
(GPHAT on 2009-05-11)
2.28
(GPHAT on 2009-05-10)
2.27
(GPHAT on 2009-05-09)
2.26
(GPHAT on 2009-05-09)
2.24
(GPHAT on 2009-05-02)
2.23
(GPHAT on 2009-04-28)
2.22
(GPHAT on 2009-04-05)
2.21
(GPHAT on 2009-03-31)
2.20
(GPHAT on 2009-03-28)
2.19
(GPHAT on 2009-03-24)
2.18
(GPHAT on 2009-02-14)
2.17
(GPHAT on 2008-12-21)
2.16
(GPHAT on 2008-12-16)
2.15
(GPHAT on 2008-12-14)
2.14
(GPHAT on 2008-12-01)
2.13
(GPHAT on 2008-10-05)
2.12
(GPHAT on 2008-10-01)
2.11
(GPHAT on 2008-09-24)
2.10
(GPHAT on 2008-09-23)
2.09
(GPHAT on 2008-09-09)
2.08
(GPHAT on 2008-09-08)
2.07
(GPHAT on 2008-09-03)
2.06
(GPHAT on 2008-08-31)
2.05
(GPHAT on 2008-08-29)
2.04
(GPHAT on 2008-08-28)
2.03
(GPHAT on 2008-08-27)
2.02
(GPHAT on 2008-08-27)
2.01
(GPHAT on 2008-08-27)
2.00
(GPHAT on 2008-08-20)
1.99_11 DEV
(GPHAT on 2008-08-20)
1.99_10 DEV
(GPHAT on 2008-08-19)
1.99_09 DEV
(GPHAT on 2008-08-19)
1.99_08 DEV
(GPHAT on 2008-08-18)
1.99_07 DEV
(GPHAT on 2008-08-14)
1.99_06 DEV
(GPHAT on 2008-08-14)
1.99_05 DEV
(GPHAT on 2008-08-12)
1.99_04 DEV
(GPHAT on 2008-08-06)
1.99_03 DEV
(GPHAT on 2008-08-05)
1.99_02 DEV
(GPHAT on 2008-07-21)
1.99_01 DEV
(GPHAT on 2008-07-17)
1.4.2
(GPHAT on 2007-12-19)
1.4.1
(GPHAT on 2007-11-26)
1.4.0
(GPHAT on 2007-10-20)
1.3.0
(GPHAT on 2007-10-15)
1.2.3
(GPHAT on 2007-10-12)
1.2.2
(GPHAT on 2007-10-06)
1.2.1
(GPHAT on 2007-10-04)
1.2.0
(GPHAT on 2007-10-04)
1.1.8
(GPHAT on 2007-09-01)
1.1.7
(GPHAT on 2007-08-31)
1.1.6
(GPHAT on 2007-03-10)
1.1.5
(GPHAT on 2007-02-24)
1.1.4
(GPHAT on 2007-01-04)
1.1.3
(GPHAT on 2006-10-22)
1.1.2
(GPHAT on 2006-10-21)
1.1.1
(GPHAT on 2006-09-18)
1.1.0
(GPHAT on 2006-09-15)
1.0.7
(GPHAT on 2006-09-13)
1.0.6
(GPHAT on 2006-09-10)
1.0.4
(GPHAT on 2006-09-01)
1.0.3
(GPHAT on 2006-08-16)
1.0.2
(GPHAT on 2006-08-11)
1.0.1
(GPHAT on 2006-08-10)
1.0.0
(GPHAT on 2006-08-05)
0.9.7
(GPHAT on 2006-06-12)
0.9.6
(GPHAT on 2006-06-09)
0.9.5
(GPHAT on 2006-05-23)
0.9.2
(GPHAT on 2006-05-11)
0.9.0
(GPHAT on 2006-05-10)
C h a r t - C l i c k e r - 2 . 9 0
R i v e r s t a g e o n e
• 4 d i r e c t d e p e n d e n t s
• 4 t o t a l d e p e n d e n t s
33 + +
/ C h a r t : : C l i c k e r
C o n t e n t s
● N A M E
● V E R S I O N
● S Y N O P S I S
● D E S C R I P T I O N
● E X A M P L E S
● F E A T U R E S
● R e n d e r e r s
● A D D I N G D A T A
● C O N T E X T S
● F O R M A T S & O U T P U T
● A T T R I B U T E S
● b a c k g r o u n d _ c o l o r
● b o r d e r
● c o l o r _ a l l o c a t o r
● c o n t e x t s
● d a t a s e t s
● d r i v e r
● f o r m a t
● p l o t _ m o d e
● g r i d _ o v e r
● h e i g h t
● l a y o u t _ m a n a g e r
● l e g e n d
● l e g e n d _ p o s i t i o n
● m a r k e r _ o v e r l a y
● o v e r _ d e c o r a t i o n s
● p a d d i n g
● p l o t
● s u b g r a p h s
● t i t l e
● t i t l e _ p o s i t i o n
● w i d t h
● M E T H O D S
● c o n t e x t _ c o u n t
● c o n t e x t _ n a m e s
● d e l e t e _ c o n t e x t ( $ n a m e )
● g e t _ c o n t e x t ( $ n a m e )
● s e t _ c o n t e x t ( $ n a m e , $ c o n t e x t )
● a d d _ t o _ d a t a s e t s
● d a t a s e t _ c o u n t
● g e t _ d a t a s e t ( $ i n d e x )
● r e n d e r e d _ d a t a
● a d d _ t o _ o v e r _ d e c o r a t i o n s
● g e t _ o v e r _ d e c o r a t i o n ( $ i n d e x )
● o v e r _ d e c o r a t i o n _ c o u n t
● a d d _ t o _ c o n t e x t s
● a d d _ s u b g r a p h
● d r a w
● g e t _ d a t a s e t s _ f o r _ c o n t e x t
● a d d _ d a t a ( $ n a m e , $ d a t a )
● s e t _ r e n d e r e r ( $ r e n d e r e r _ o b j e c t , [ $ c o n t e x t ] ) ;
● w r i t e
● w r i t e _ o u t p u t ( $ p a t h )
● i n s i d e _ w i d t h
● i n s i d e _ h e i g h t
● I S S U E S W I T H C E N T O S
● C O N T R I B U T O R S
● S O U R C E
● A U T H O R
● C O P Y R I G H T A N D L I C E N S E
N A M E
C h a r t : : C l i c k e r - P o w e r f u l , e x t e n s i b l e c h a r t i n g .
V E R S I O N
v e r s i o n 2 . 9 0
S Y N O P S I S
use Chart::Clicker;
my $cc = Chart::Clicker->new;
my @values = (42, 25, 86, 23, 2, 19, 103, 12, 54, 9);
$cc->add_data('Sales', \@values);
# alternately, you can add data one bit at a time...
foreach my $v (@values) {
$cc->add_data('Sales', $v);
}
# Or, if you want to specify the keys you can use a hashref
my $data = { 12 => 123, 13 => 341, 14 => 1241 };
$cc->add_data('Sales', $data);
$cc->write_output('foo.png');
D E S C R I P T I O N
C h a r t : : C l i c k e r a i m s t o b e a p o w e r f u l , e x t e n s i b l e c h a r t i n g p a c k a g e t h a t c r e a t e s r e a l l y p r e t t y o u t p u t . C h a r t s c a n b e s a v e d i n p n g , s v g , p d f a n d p o s t s c r i p t f o r m a t .
C l i c k e r l e v e r a g e s t h e p o w e r o f G r a p h i c s : : P r i m i t i v e t o c r e a t e s n a z z y g r a p h i c s w i t h o u t b e i n g t i e d t o s p e c i f i c b a c k e n d . Y o u m a y w a n t t o b e g i n w i t h C h a r t : : C l i c k e r : : T u t o r i a l .
E X A M P L E S
F o r c o d e e x a m p l e s s e e t h e e x a m p l e s r e p o s i t o r y o n G i t H u b : h t t p : / / g i t h u b . c o m / g p h a t / c h a r t - c l i c k e r - e x a m p l e s /
F E A T U R E S
R e n d e r e r s
C l i c k e r s u p p o r t s t h e f o l l o w i n g r e n d e r e r s :
L i n e
S t a c k e d L i n e
B a r
S t a c k e d B a r
A r e a
S t a c k e d A r e a
B u b b l e
C a n d l e S t i c k
P o i n t
P i e
P o l a r A r e a
A D D I N G D A T A
T h e s y n o p s i s s h o w s t h e s i m p l e w a y t o a d d d a t a .
my @values = (42, 25, 86, 23, 2, 19, 103, 12, 54, 9);
foreach my $v (@values) {
$cc->add_data('Sales', $v);
}
T h i s i s a c o n v e n i e n c e m e t h o d p r o v i d e d t o m a k e s i m p l e c a s e s m u c h s i m p l e r . A d d i n g m u l t i p l e S e r i e s t o a c h a r t i s a s e a s y a s c h a n g i n g t h e n a m e a r g u m e n t o f a d d _ d a t a
. E a c h u n i q u e f i r s t a r g u m e n t w i l l r e s u l t i n a s e p a r a t e s e r i e s . S e e t h e d o c s f o r a d d _ d a t a
t o l e a r n m o r e .
I f y o u ' d l i k e t o u s e t h e m o r e a d v a n c e d f e a t u r e s o f C l i c k e r y o u ' l l n e e d t o s h a k e o f f t h i s s i m p l e m e t h o d a n d b u i l d S e r i e s & D a t a S e t s e x p l i c i t l y .
use Chart::Clicker::Data::Series;
use Chart::Clicker::Data::DataSet;
...
my $series = Chart::Clicker::Data::Series->new(
keys => [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ],
values => [ 42, 25, 86, 23, 2, 19, 103, 12, 54, 9 ],
);
my $ds = Chart::Clicker::Data::DataSet->new(series => [ $series ]);
$cc->add_to_datasets($ds);
T h i s u s e d t o b e t h e o n l y w a y t o a d d d a t a , b u t r e p e a t e d r e q u e s t s t o m a k e t h e c o m m o n c a s e e a s i e r r e s u l t e d i n t h e i n c l u s i o n o f a d d _
d a t a
.
C O N T E X T S
T h e n o r m a l u s e c a s e f o r a c h a r t i s a c o u p l e o f d a t a s e t s o n t h e s a m e a x e s . S o m e t i m e s y o u w a n t t o c h a r t o n e o r m o r e d a t a s e t s o n d i f f e r e n t a x e s . A c o m m o n n e e d f o r t h i s i s w h e n y o u a r e c o m p a r i n g t w o d a t a s e t s o f v a s t l y d i f f e r e n t s c a l e s u c h a s t h e n u m b e r o f e m p l o y e e s i n a n o f f i c e ( 1 - 1 0 ) t o m o n t h l y r e v e n u e s ( 1 0 s o f t h o u s a n d s ) . O n a n o r m a l c h a r t t h e n u m b e r o f e m p l o y e e s w o u l d s h o w u p a s a f l a t l i n e a t t h e b o t t o m o f t h e c h a r t .
T o c o r r e c t t h i s , C l i c k e r h a s c o n t e x t s . A c o n t e x t i s a p a i r o f a x e s , a r e n d e r e r a n d a n a m e . T h e n a m e i s t h e ' k e y ' b y w h i c h y o u w i l l r e f e r t o t h e c o n t e x t .
my $context = Chart::Clicker::Context->new( name => 'sales' );
$clicker->add_to_contexts($context);
$dataset->context('sales');
$clicker->add_to_datasets($dataset);
N e w c o n t e x t s p r o v i d e a f r e s h d o m a i n a n d r a n g e a x i s a n d d e f a u l t t o a L i n e r e n d e r e r .
C a v e a t : C l i c k e r e x p e c t s t h a t t h e d e f a u l t c o n t e x t ( i d e n t i f i e d b y t h e s t r i n g " d e f a u l t " ) w i l l a l w a y s b e p r e s e n t . I t i s f r o m t h i s c o n t e x t t h a t s o m e o f C l i c k e r ' s i n t e r n a l s d r a w t h e i r v a l u e s . Y o u s h o u l d u s e t h e d e f a u l t c o n t e x t u n l e s s y o u n e e d m o r e t h a n o n e , i n w h i c h c a s e y o u s h o u l d u s e " d e f a u l t " a s t h e b a s e c o n t e x t .
C l i c k e r s u p p o r t s P N G , S V G , P D F a n d P o s t S c r i p t o u t p u t . T o c h a n g e y o u r o u t p u t t y p e , s p e c i f i c y i t w h e n y o u c r e a t e y o u r C l i c k e r o b j e c t :
my $cc = Chart::Clicker->new(format => 'pdf', ...);
# ...
$cc->write_output('chart.pdf');
I f y o u a r e l o o k i n g t o g e t a s c a l a r o f t h e o u t p u t f o r u s e w i t h H T T P o r s i m i l a r t h i n g s , y o u c a n u s e :
# ... make your chart
$cc->draw;
my $image_data = $cc->rendered_data;
I f y o u h a p p e n t o b e u s i n g C a t a l y s t t h e n t a k e a l o o k a t C a t a l y s t : : V i e w : : G r a p h i c s : : P r i m i t i v e .
A T T R I B U T E S
b a c k g r o u n d _ c o l o r
S e t / G e t t h e b a c k g r o u n d c o l o r . D e f a u l t s t o w h i t e .
b o r d e r
S e t / G e t t h e b o r d e r .
c o l o r _ a l l o c a t o r
S e t / G e t t h e c o l o r _ a l l o c a t o r f o r t h i s c h a r t .
c o n t e x t s
S e t / G e t t h e c o n t e x t s f o r t h i s c h a r t .
d a t a s e t s
G e t / S e t t h e d a t a s e t s f o r t h i s c h a r t .
d r i v e r
S e t / G e t t h e d r i v e r u s e d t o r e n d e r t h i s C h a r t . D e f a u l t s t o G r a p h i c s : : P r i m i t i v e : : D r i v e r : : C a i r o .
G e t t h e f o r m a t f o r t h i s C h a r t . R e q u i r e d i n t h e c o n s t r u c t o r . M u s t b e o n o f P n g , P d f , P s o r S v g .
p l o t _ m o d e
F a s t o r s l o w p l o t m o d e . W h e n i n f a s t m o d e , d a t a e l e m e n t s t h a t a r e d e e m e d t o b e s u p e r f l u o u s o r i n v i s i b l e w i l l n o t b e d r a w n . D e f a u l t i s ' s l o w '
g r i d _ o v e r
F l a g c o n t r o l l i n g i f t h e g r i d i s r e n d e r e d o v e r t h e d a t a . D e f a u l t s t o 0 . Y o u p r o b a b l y w a n t t o s e t t h e g r i d ' s b a c k g r o u n d c o l o r t o a n a l p h a o f 0 i f y o u e n a b l e t h i s f l a g .
h e i g h t
S e t / G e t t h e h e i g h t . D e f a u l t s t o 3 0 0 .
l a y o u t _ m a n a g e r
S e t / G e t t h e l a y o u t m a n a g e r . D e f a u l t s t o L a y o u t : : M a n a g e r : : C o m p a s s .
l e g e n d
S e t / G e t t h e l e g e n d t h a t w i l l b e u s e d w i t h t h i s c h a r t .
l e g e n d _ p o s i t i o n
T h e p o s i t i o n t h e l e g e n d w i l l b e a d d e d . S h o u l d b e o n e o f n o r t h , s o u t h , e a s t , w e s t o r c e n t e r a s r e q u i r e d b y L a y o u t : : M a n a g e r : : C o m p a s s .
m a r k e r _ o v e r l a y
S e t / G e t t h e m a r k e r o v e r l a y o b j e c t t h a t w i l l b e u s e d i f t h i s c h a r t h a s m a r k e r s . T h i s i s l a z i l y c o n s t r u c t e d t o s a v e t i m e .
o v e r _ d e c o r a t i o n s
S e t / G e t a n a r r a y r e f o f " o v e r d e c o r a t i o n s " , o r t h i n g s t h a t a r e d r a w n O V E R t h e c h a r t . T h i s i s a n a d v a n c e d f e a t u r e . S e e o v e r a x i s - b a
r . p l
i n t h e e x a m p l e s .
p a d d i n g
S e t / G e t t h e p a d d i n g . D e f a u l t s t o 3 p x o n a l l s i d e s .
p l o t
S e t / G e t t h e p l o t o n w h i c h t h i n g s a r e d r a w n .
s u b g r a p h s
Y o u c a n a d d " c h i l d " g r a p h s t o t h i s o n e v i a a d d _ s u b g r a p h
. T h e s e m u s t b e C h a r t : : C l i c k e r o b j e c t s a n d t h e y w i l l b e a d d e d t o t h e b o t t o m o f t h e e x i s t i n g c h a r t . T h i s i s a r a t h e r e s o t e r i c f e a t u r e .
t i t l e
S e t / G e t t h e t i t l e c o m p o n e n t f o r t h i s c h a r t . T h i s i s a G r a p h i c s : : P r i m i t i v e : : T e x t B o x , n o t a s t r i n g . T o s e t t h e t i t l e o f a c h a r t y o u s h o u l d a c c e s s t h e T e x t B o x ' s t e x t
m e t h o d .
$cc->title->text('A Title!');
$cc->title->font->size(20 );
# etc, etc
I f t h e t i t l e h a s t e x t t h e n i t i s a d d e d t o t h e c h a r t i n t h e p o s i t i o n s p e c i f i e d b y t i t l e _ p o s i t i o n
.
Y o u s h o u l d c o n s u l t t h e d o c u m e n t a t i o n f o r G r a p h i c s : : P r i m i t i v e : : T e x t B o x f o r t h i n g s l i k e p a d d i n g a n d t e x t r o t a t i o n . I f y o u a r e a d d i n g i t t o t h e t o p a n d w a n t s o m e p a d d i n g b e t w e e n i t a n d t h e p l o t , y o u c a n :
$cc->title->padding->bottom(5 );
t i t l e _ p o s i t i o n
T h e p o s i t i o n t h e t i t l e w i l l b e a d d e d . S h o u l d b e o n e o f n o r t h , s o u t h , e a s t , w e s t o r c e n t e r a s r e q u i r e d b y L a y o u t : : M a n a g e r : : C o m p a s s .
N o t e t h a t i f n o a n g l e i s s e t f o r t h e t i t l e t h e n i t w i l l b e c h a n g e d t o - 1 . 5 7 0 7 i f t h e t i t l e p o s i t i o n i s e a s t o r w e s t .
w i d t h
S e t / G e t t h e w i d t h . D e f a u l t s t o 5 0 0 .
M E T H O D S
c o n t e x t _ c o u n t
G e t a c o u n t o f c o n t e x t s .
c o n t e x t _ n a m e s
G e t a l i s t o f c o n t e x t n a m e s .
d e l e t e _ c o n t e x t ( $ n a m e )
R e m o v e t h e c o n t e x t w i t h t h e s p e c i f i e d n a m e .
g e t _ c o n t e x t ( $ n a m e )
G e t t h e c o n t e x t w i t h t h e s p e c i f i e d n a m e
s e t _ c o n t e x t ( $ n a m e , $ c o n t e x t )
S e t a c o n t e x t o f t h e s p e c i f i e d n a m e .
a d d _ t o _ d a t a s e t s
A d d t h e s p e c i f i e d d a t a s e t ( o r a r r a y r e f o f d a t a s e t s ) t o t h e c h a r t .
d a t a s e t _ c o u n t
G e t a c o u n t o f d a t a s e t s .
g e t _ d a t a s e t ( $ i n d e x )
G e t t h e d a t a s e t a t t h e s p e c i f i e d i n d e x .
r e n d e r e d _ d a t a
R e t u r n s t h e d a t a f o r t h i s c h a r t a s a s c a l a r . S u i t a b l e f o r ' s t r e a m i n g ' t o a c l i e n t .
a d d _ t o _ o v e r _ d e c o r a t i o n s
A d d a n o v e r d e c o r a t i o n t o t h e l i s t .
g e t _ o v e r _ d e c o r a t i o n ( $ i n d e x )
G e t t h e o v e r d e c o r a t i o n a t t h e s p e c i f i e d i n d e x .
o v e r _ d e c o r a t i o n _ c o u n t
G e t a c o u n t o f o v e r d e c o r a t i o n s .
a d d _ t o _ c o n t e x t s
A d d t h e s p e c i f i e d c o n t e x t t o t h e c h a r t .
a d d _ s u b g r a p h
A d d a s u b g r a p h t o t h i s c h a r t .
d r a w
D r a w t h i s c h a r t .
g e t _ d a t a s e t s _ f o r _ c o n t e x t
R e t u r n s a n a r r a y r e f c o n t a i n i n g a l l d a t a s e t s f o r t h e g i v e n c o n t e x t . U s e d b y r e n d e r e r s t o g e t a l i s t o f d a t a s e t s t o c h a r t .
a d d _ d a t a ( $ n a m e , $ d a t a )
C o n v e n i e n c e m e t h o d f o r a d d i n g d a t a t o t h e c h a r t . C a n b e c a l l e d o n e o f t h r e e w a y s .
s c a l a r
P a s s i n g a n a m e a n d a s c a l a r w i l l a p p e n d t h e s c a l a r d a t a t o t h a t s e r i e s ' d a t a .
$cc->add_data('Sales', 1234);
$cc->add_data('Sales', 1235);
T h i s w i l l r e s u l t i n a S e r i e s n a m e d ' S a l e s ' w i t h t w o v a l u e s .
a r r a y r e f
P a s s i n g a n a m e a n d a n a r r a y r e f w o r k s m u c h t h e s a m e a s t h e s c a l a r m e t h o d d i s c u s s e d a b o v e , b u t a p p e n d s t h e s u p p l i e d a r r a y r e f t o t h e e x i s t i n g o n e . I t m a y b e m i x e d w i t h t h e s c a l a r m e t h o d .
$cc->add_data('Sales', \@some_sales);
$cc->add_data('Sales', \@some_more_sales);
# This works still!
$cc->add_data('Sales', 1234);
h a s h r e f
T h i s a l l o w s y o u t o p a s s b o t h k e y s a n d v a l u e s i n a l l a t o n c e .
$cc->add_data('Sales', { 2009 => 1234, 2010 => 1235 });
# appends to last call
$cc->add_data('Sales', { 2011 => 1234, 2012 => 1235 });
Y o u m a y c a l l t h e h a s h r e f v e r s i o n a f t e r t h e s c a l a r o r a r r a y r e f v e r s i o n s , b u t y o u m a y n o t a d d a s c a l a r o r a r r a y r e f a f t e r a d d i n g a h a s h r e f ( a s i t ' s n o t c l e a r w h a t i n d i c e s s h o u l d b e u s e d f o r t h e n e w d a t a ) .
s e t _ r e n d e r e r ( $ r e n d e r e r _ o b j e c t , [ $ c o n t e x t ] ) ;
S e t s t h e r e n d e r e r o n t h e s p e c i f i e d c o n t e x t . I f n o c o n t e x t i s p r o v i d e d t h e n ' d e f a u l t ' i s a s s u m e d .
w r i t e
T h i s m e t h o d i s p a s s e d t h r o u g h t o t h e u n d e r l y i n g d r i v e r . I t i s o n l y n e c e s s a r y t h a t y o u c a l l t h i s i f y o u m a n u a l l y c a l l e d d r a w
b e f o r e h a n d . Y o u l i k e l y w a n t t o u s e w
r i t e _ o u t p u t
.
w r i t e _ o u t p u t ( $ p a t h )
W r i t e t h e c h a r t o u t p u t t o t h e s p e c i f i e d l o c a t i o n . O u t p u t i s w r i t t e n i n t h e f o r m a t p r o v i d e d t o t h e c o n s t r u c t o r ( w h i c h d e f a u l t s t o P n g ) . I n t e r n a l l y c a l l s d r a w
f o r y o u . I f y o u u s e t h i s m e t h o d , d o n o t c a l l d r a w
f i r s t !
$c->write_output('/path/to/the.png');
i n s i d e _ w i d t h
G e t t h e w i d t h a v a i l a b l e i n t h i s c o n t a i n e r a f t e r t a k i n g a w a y s p a c e f o r i n s e t s a n d b o r d e r s .
i n s i d e _ h e i g h t
G e t t h e h e i g h t a v a i l a b l e i n t h i s c o n t a i n e r a f t e r t a k i n g a w a y s p a c e f o r i n s e t s a n d b o r d e r s .
I S S U E S W I T H C E N T O S
I ' v e h a d n u m e r o u s r e p o r t s o f p r o b l e m s w i t h C h a r t : : C l i c k e r w h e n u s i n g C e n t O S . T h i s p r o b l e m h a s u s u a l l y b e s o l v e d b y u p d a t i n g t h e v e r s i o n o f c a i r o . I ' v e h a d r e p o r t s t h a t u p g r a d i n g t o a t l e a s t c a i r o - 1 . 8 . 8 - 3 m a k e s t h i n k s w o r k p r o p e r l y .
I h e s i t a t e t o p r o v i d e a n y o t h e r d a t a w i t h t h i s b e c a u s e i t m a y g e t o u t o f d a t e f a s t . I f y o u h a v e t r o u b l e f e e l f r e e t o d r o p m e a n e m a i l a n d I ' l l t e l l y o u w h a t I k n o w .
C O N T R I B U T O R S
M a n y t h a n k s t o t h e i n d i v i d u a l s w h o h a v e c o n t r i b u t e d v a r i o u s b i t s :
A s h B e r l i n
B r i a n C a s s i d y
G u i l l e r m o R o d i t i
T o r s t e n S c h o e n f e l d
Y u v a l K o g m a n
S O U R C E
C h a r t : : C l i c k e r i s o n g i t h u b :
http://github.com/gphat/chart-clicker/tree/master
A U T H O R
C o r y G W a t s o n < g p h a t @ c p a n . o r g >
C O P Y R I G H T A N D L I C E N S E
T h i s s o f t w a r e i s c o p y r i g h t ( c ) 2 0 1 6 b y C o r y G W a t s o n .
T h i s i s f r e e s o f t w a r e ; y o u c a n r e d i s t r i b u t e i t a n d / o r m o d i f y i t u n d e r t h e s a m e t e r m s a s t h e P e r l 5 p r o g r a m m i n g l a n g u a g e s y s t e m i t s e l f .
×
M o d u l e I n s t a l l I n s t r u c t i o n s
T o i n s t a l l C h a r t : : C l i c k e r , c o p y a n d p a s t e t h e a p p r o p r i a t e c o m m a n d i n t o y o u r t e r m i n a l .
c p a n m
cpanm Chart::Clicker
C P A N s h e l l
perl -MCPAN -e shell
install Chart::Clicker
F o r m o r e i n f o r m a t i o n o n m o d u l e i n s t a l l a t i o n , p l e a s e v i s i t t h e d e t a i l e d C P A N m o d u l e i n s t a l l a t i o n g u i d e .
C l o s e
A b o u t
S p o n s o r
g r e p : : c p a n
R e c e n t
F A Q
T o o l s
A P I
P e r l . o r g
×
K e y b o a r d S h o r t c u t s
Global
s
Focus search bar
?
Bring up this help dialog
GitHub
g p
Go to pull requests
g i
go to github issues (only if github is preferred repository)
POD
g a
Go to author
g c
Go to changes
g i
Go to issues
g d
Go to dist
g r
Go to repository/SCM
g s
Go to source
g b
Go to file browse