SlideShare uma empresa Scribd logo
1 de 19
Chart::Clicker A plotting module for Perl
As the author says: “Chart::Clicker aims to be a powerful, extensible charting package that creates really pretty output.” Why Chart::Clicker?
Chart::Clicker underlying technologies ,[object Object]
Renderers are written in Cairo.
ColorAllocator is developed from Color::Scheme
Color objects can use Color::Library named colors.
Geometric entities represented as Geometry::Primitive objects.
Installation ,[object Object]
Unavailable in Active Perl currently ,[object Object],[object Object]
Works best if you preinstall the Cairo module. ,[object Object]
Issues with Cairo cause install issues with CENTOS.
Output ,[object Object]
Specify when you create your clicker object.
my $cc = Chart::Clicker->new( format => 'pdf', ..
When specifying format, can specify size as well.
If you expect to post-process the file, then bigger is better.You can shrink the image after the fact.
Resources ,[object Object]
Blog: http://www.onemogin.com/blog/category/chartclicker
Chart::Clicker components ,[object Object]

Mais conteúdo relacionado

Mais procurados

Mais procurados (14)

1D Array
1D Array1D Array
1D Array
 
PHP array 1
PHP array 1PHP array 1
PHP array 1
 
N-Queens Combinatorial Problem - Polyglot FP for fun and profit - Haskell and...
N-Queens Combinatorial Problem - Polyglot FP for fun and profit - Haskell and...N-Queens Combinatorial Problem - Polyglot FP for fun and profit - Haskell and...
N-Queens Combinatorial Problem - Polyglot FP for fun and profit - Haskell and...
 
Nonlinear analysis of frame with hinge by hinge method in c programming
Nonlinear analysis of frame with hinge by hinge method in c programmingNonlinear analysis of frame with hinge by hinge method in c programming
Nonlinear analysis of frame with hinge by hinge method in c programming
 
All you need to know about JavaScript Functions
All you need to know about JavaScript FunctionsAll you need to know about JavaScript Functions
All you need to know about JavaScript Functions
 
JavaScript Objects and OOP Programming with JavaScript
JavaScript Objects and OOP Programming with JavaScriptJavaScript Objects and OOP Programming with JavaScript
JavaScript Objects and OOP Programming with JavaScript
 
Monad Fact #2
Monad Fact #2Monad Fact #2
Monad Fact #2
 
Python lecture 05
Python lecture 05Python lecture 05
Python lecture 05
 
Gradient effect for ie 7
Gradient effect for ie 7Gradient effect for ie 7
Gradient effect for ie 7
 
VIT351 Software Development VI Unit2
VIT351 Software Development VI Unit2VIT351 Software Development VI Unit2
VIT351 Software Development VI Unit2
 
Oh, All the things you'll traverse
Oh, All the things you'll traverseOh, All the things you'll traverse
Oh, All the things you'll traverse
 
Php array
Php arrayPhp array
Php array
 
LeetCode April Coding Challenge
LeetCode April Coding ChallengeLeetCode April Coding Challenge
LeetCode April Coding Challenge
 
130717666736980000
130717666736980000130717666736980000
130717666736980000
 

Semelhante a Chart clicker presentation

Advanced Technology for Web Application Design
Advanced Technology for Web Application DesignAdvanced Technology for Web Application Design
Advanced Technology for Web Application Design
Bryce Kerley
 

Semelhante a Chart clicker presentation (20)

How Groovy Helps
How Groovy HelpsHow Groovy Helps
How Groovy Helps
 
Chapter 2 wbp.pptx
Chapter 2 wbp.pptxChapter 2 wbp.pptx
Chapter 2 wbp.pptx
 
Graphs made easy with SAS ODS Graphics Designer (PAPER)
Graphs made easy with SAS ODS Graphics Designer (PAPER)Graphs made easy with SAS ODS Graphics Designer (PAPER)
Graphs made easy with SAS ODS Graphics Designer (PAPER)
 
Google Chart Tools Kanika Garg (10BM60035) Lavanya R. (10BM60042)
Google Chart Tools Kanika Garg (10BM60035) Lavanya R. (10BM60042)Google Chart Tools Kanika Garg (10BM60035) Lavanya R. (10BM60042)
Google Chart Tools Kanika Garg (10BM60035) Lavanya R. (10BM60042)
 
Aggregate.pptx
Aggregate.pptxAggregate.pptx
Aggregate.pptx
 
Google Chart Tools
Google Chart Tools Google Chart Tools
Google Chart Tools
 
Introduction to GGVIS Visualization
Introduction to GGVIS VisualizationIntroduction to GGVIS Visualization
Introduction to GGVIS Visualization
 
Php my sql - functions - arrays - tutorial - programmerblog.net
Php my sql - functions - arrays - tutorial - programmerblog.netPhp my sql - functions - arrays - tutorial - programmerblog.net
Php my sql - functions - arrays - tutorial - programmerblog.net
 
Sass Essentials
Sass EssentialsSass Essentials
Sass Essentials
 
CSS Less framework overview, Pros and Cons
CSS Less framework overview, Pros and ConsCSS Less framework overview, Pros and Cons
CSS Less framework overview, Pros and Cons
 
PPT on Data Science Using Python
PPT on Data Science Using PythonPPT on Data Science Using Python
PPT on Data Science Using Python
 
Me 443 4 plotting curves Erdi Karaçal Mechanical Engineer University of Gaz...
Me 443   4 plotting curves Erdi Karaçal Mechanical Engineer University of Gaz...Me 443   4 plotting curves Erdi Karaçal Mechanical Engineer University of Gaz...
Me 443 4 plotting curves Erdi Karaçal Mechanical Engineer University of Gaz...
 
Perl Teach-In (part 1)
Perl Teach-In (part 1)Perl Teach-In (part 1)
Perl Teach-In (part 1)
 
How to generate a 100+ page website using parameterisation in R
How to generate a 100+ page website using parameterisation in RHow to generate a 100+ page website using parameterisation in R
How to generate a 100+ page website using parameterisation in R
 
What's New in ZF 1.10
What's New in ZF 1.10What's New in ZF 1.10
What's New in ZF 1.10
 
Advanced Technology for Web Application Design
Advanced Technology for Web Application DesignAdvanced Technology for Web Application Design
Advanced Technology for Web Application Design
 
DBIx::Class beginners
DBIx::Class beginnersDBIx::Class beginners
DBIx::Class beginners
 
Dynamic Data Visualization With Chartkick
Dynamic Data Visualization With ChartkickDynamic Data Visualization With Chartkick
Dynamic Data Visualization With Chartkick
 
interenship.pptx
interenship.pptxinterenship.pptx
interenship.pptx
 
Code is not text! How graph technologies can help us to understand our code b...
Code is not text! How graph technologies can help us to understand our code b...Code is not text! How graph technologies can help us to understand our code b...
Code is not text! How graph technologies can help us to understand our code b...
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Chart clicker presentation

  • 1. Chart::Clicker A plotting module for Perl
  • 2. As the author says: “Chart::Clicker aims to be a powerful, extensible charting package that creates really pretty output.” Why Chart::Clicker?
  • 3.
  • 5. ColorAllocator is developed from Color::Scheme
  • 6. Color objects can use Color::Library named colors.
  • 7. Geometric entities represented as Geometry::Primitive objects.
  • 8.
  • 9.
  • 10.
  • 11. Issues with Cairo cause install issues with CENTOS.
  • 12.
  • 13. Specify when you create your clicker object.
  • 14. my $cc = Chart::Clicker->new( format => 'pdf', ..
  • 15. When specifying format, can specify size as well.
  • 16. If you expect to post-process the file, then bigger is better.You can shrink the image after the fact.
  • 17.
  • 19.
  • 20. my $cc = Chart::Clicker->new( format =>'png', height => 480, width => 640 ); my $series1 = Chart::Clicker::Data::Series->new( keys => x_data,, values => y_data, ); $series1->name('First Line'); # # lots more series # my $ds = Chart::Clicker::Data::DataSet->new( series => [ $series1, $series2, $series3, $series4, $series5, $series6, $series7, $series8 ] ); $cc->add_to_datasets($ds);
  • 21.
  • 22. Axis objects:Can set tick count, and upper and lower bounds.
  • 23. For some reason, pie charts still require a nonzero axis length.
  • 24.
  • 25.
  • 26.
  • 27. my $context = Chart::Clicker::Context->new( name => 'sales' ); $clicker->add_to_contexts($context); $dataset->context('sales'); $clicker->add_to_datasets($dataset);
  • 28. # # Creating a context and then setting up Axis values. # %cfg values are assigned via a Config::Simple object. # my $defctx = $cc->get_context('default'); $defctx->domain_axis->label($cfg{"default.X_Axis"}); $defctx->domain_axis->range( Chart::Clicker::Data::Range->new( lower => $cfg{"default.X_Lower"}, upper => $cfg{"default.X_Upper"} ) ); $defctx->domain_axis->ticks( $cfg{"default.X_Ticks"}); $defctx->range_axis->label($cfg{"default.Y_Axis"}); $defctx->range_axis->range( Chart::Clicker::Data::Range->new( lower => $cfg{"default.Y_Lower"}, upper => $cfg{"default.Y_Upper"} ) ); $defctx->range_axis->ticks($cfg{"default.Y_Ticks"}); $defctx->renderer(Chart::Clicker::Renderer::Point->new);
  • 29. Contexts: sharing axes Contexts can share axes. The Chart::Clicker::Context perldocs shows this method: $context_a->share_axes_with($context_b); Also possible is $self->range_axis($other_context->range_axis); $self->domain_axis($other_context->domain_axis);
  • 30.
  • 31.
  • 32. Default order = 270,90,180,0, 45, 135, 215, 305, etc.
  • 33.
  • 34. Named colors can be accessed through the from_color_library method of the Graphics::Color::RGB object.
  • 35. my $ca = Chart::Clicker::Drawing::ColorAllocator->new; # this hash is simply here to make things readable and cleaner, you can always call G::C::R inline my $red = Graphics::Color::RGB->new({ red => .75, green => 0, blue => 0, alpha => .8 }); my $green = Graphics::Color::RGB->new({ red => 0,green => .75, blue=> 0, alpha=> .8 }); my $blue = Graphics::Color::RGB->new({ red => 0, green => 0, blue => .75, alpha => .8 }), my $chart = Chart::Clicker->new; # Create an empty dataset that we can add to my $dataset = Chart::Clicker::Data::DataSet->new; $dataset->add_to_series(Chart::Clicker::Data::Series->new( keys => [ 1,2,3,4,5 ], values => [ 52,74,52,82,14 ] )); # add a color - note that the order of colors and the order of the # series must match, the first series will use the first color and so on # see contexts and axes for alternate ways of doing this $ca->add_to_colors($blue);
  • 36. # # if $colorlist non-empty, it contains Color::Library # colors. # if ( scalar @{$colorlist} > 0 ) { my $rgb = new Graphics::Color::RGB; my $colors; for (@{$colorlist}) { push @{$colors}, $rgb->from_color_library( $_ ); } my $ca = Chart::Clicker::Drawing::ColorAllocator->new( { colors => $colors }); $cc->color_allocator( $ca ); }
  • 37.
  • 38. Image::Magick – The Annotate method can be used to label graphs (will have to DIY the Geometry)
  • 39. GIMP/Photoshop – format translation. Tiling multiple images as a PDF. Simple inset graphs.
  • 40. Fedex-Kinkos – next day online color prints
  • 41.
  • 42. Bruce Gray, who suggested I look at this module.
  • 43. Stephen Cristol, who puts up with my off topic statistics questions.
  • 44. Atlanta Perl Mongers, for giving me the opportunity to present to their membership.