Upload
others
View
15
Download
0
Embed Size (px)
Citation preview
CCC – Community Charting Components
Pedro Alves - webdetails
The future of charting in Pentaho
The future of charting in Pentaho
(but they don't know it yet)
Why?
Why?
Charts play a very important role in dashboards
Why?
Charts play a very important role in dashboards
Indispensable visualization elements
Why?
Charts play a very important role in dashboards
Indispensable visualization elements
Charts are cool
Why?
Charts play a very important role in dashboards
Indispensable visualization elements
Charts are cool
The ones we have suck...
So we started looking for an alternative
We looked
Xml/Swf
We looked
JFreeChart
We looked
YUI
We looked
ElegantJ
Looked again
ASE
Looked again
PChart
Looked again
Google Chart Tools
Looked again
PlotKit
Kept looking
JPGraph
Kept looking
Graphael
Kept looking
Emprise
Kept looking
JsChart
Almost gave up
HighCharts
Almost gave up
Visualize
Almost gave up
PieGraph
Almost gave up
JQPlot
But continued looking
MilkChart
But continued looking
ProtoChart
But continued looking
FusionCharts
But continued looking
OpenFlashCharts
Until we could look no more
AnyCharts
Until we could look no more
RichChartServer
Until we could look no more
Swiff
Until we could look no more
Flex
!
We got to two conclusions
#1
#1
They're all round!
#2
#2
They're all crap!
What now?
The Solution
The Solution
Chartbeans Project
The Solution
Chartbeans Project
Pentaho initiative
The Solution
Chartbeans Project
Pentaho initiative
Pentaho ChartBeans is a wrapper around existing "chart engines" (such as JFreeChart and Open Flash Chart). Wrapping these chart engines creates a single way of
expressing charts.
Chartbeans Project
Chartbeans Project
Write a java layer
Chartbeans Project
Charting terminologyWrite a java layer
Chartbeans Project
Chart Structure: ChartDocument and ChartModelCharting terminology
Write a java layer
Chartbeans Project
Chart Styling: stored in ChartElement instances.Chart Structure: ChartDocument and ChartModel
Charting terminologyWrite a java layer
Chartbeans Project
Generate a pluginChart Styling: stored in ChartElement instances.
Chart Structure: ChartDocument and ChartModelCharting terminology
Write a java layer
Chartbeans ProjectCall an xaction
Generate a pluginChart Styling: stored in ChartElement instances.
Chart Structure: ChartDocument and ChartModelCharting terminology
Write a java layer
Chartbeans ProjectCall an xaction
Generate a pluginChart Styling: stored in ChartElement instances.
Chart Structure: ChartDocument and ChartModelCharting terminology
Write a java layer
What now?
The Problem
The Problem
Look at what our users need
The Problem
The Problem
The Problem
Our users need
Answers!
The Problem
Look at what we need
The Problem
We need
Flexibility!
The Answer
The Answer
We don't need a charting library
The Answer
We don't need a charting library
We need a visualization library
The Answer
We don't need a charting library
We need a visualization library
That seamlessly integrates with our tools
The Answer
Protovis
http://vis.stanford.edu/protovis/
Protovis
Protovis
Unlike low-level graphics libraries, Protovis defines marks through dynamic properties that encode data, allowing inheritance, scales and
layouts to simplify construction.
Protovis
Protovis
Protovis
Protovis
Red Green Blue Orange
5
10
15
20
Protovis
Protovis
Pros:
Cons:
Protovis
Pros:We can do whatever we want
Cons:
Protovis
Pros:We can do whatever we want
(and we'll never want to do 3d, sorry)
Cons:
Protovis
Pros:We can do whatever we want
(and we'll never want to do 3d, sorry)
Cons:Requires knowledge
Can be time consuming
The Project
The Project
CCC – Community Charting Components
http://github.com/pmalves/ccc
CCC – Community Charting Components
CCC is a charting library on top of protovis with the aim to provide developers with a way to include the basic chart types into a dashboard without losing the main principle: Extensibility
CCC – Community Charting Components
Demonstration
CCC – Community Charting Components