ccc – community charting components · ccc – community charting components ccc is a charting...

82
CCC – Community Charting Components Pedro Alves - webdetails

Upload: others

Post on 13-Jul-2020

19 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

CCC – Community Charting Components

Pedro Alves - webdetails

Page 2: CCC – Community Charting Components · 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 future of charting in Pentaho

Page 3: CCC – Community Charting Components · 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 future of charting in Pentaho

(but they don't know it yet)

Page 4: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Why?

Page 5: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Why?

Charts play a very important role in dashboards

Page 6: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Why?

Charts play a very important role in dashboards

Indispensable visualization elements

Page 7: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Why?

Charts play a very important role in dashboards

Indispensable visualization elements

Charts are cool

Page 8: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Why?

Charts play a very important role in dashboards

Indispensable visualization elements

Charts are cool

The ones we have suck...

Page 9: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

So we started looking for an alternative

Page 10: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

We looked

Xml/Swf

Page 11: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

We looked

JFreeChart

Page 12: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

We looked

YUI

Page 13: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

We looked

ElegantJ

Page 14: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Looked again

ASE

Page 15: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Looked again

PChart

Page 16: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Looked again

Google Chart Tools

Page 17: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Looked again

PlotKit

Page 18: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Kept looking

JPGraph

Page 19: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Kept looking

Graphael

Page 20: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Kept looking

Emprise

Page 21: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Kept looking

JsChart

Page 22: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Almost gave up

HighCharts

Page 23: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Almost gave up

Visualize

Page 24: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Almost gave up

PieGraph

Page 25: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Almost gave up

JQPlot

Page 26: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

But continued looking

MilkChart

Page 27: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

But continued looking

ProtoChart

Page 28: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

But continued looking

FusionCharts

Page 29: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

But continued looking

OpenFlashCharts

Page 30: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Until we could look no more

AnyCharts

Page 31: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Until we could look no more

RichChartServer

Page 32: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Until we could look no more

Swiff

Page 33: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Until we could look no more

Flex

Page 34: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

!

Page 35: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

We got to two conclusions

Page 36: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

#1

Page 37: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

#1

They're all round!

Page 38: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

#2

Page 39: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

#2

They're all crap!

Page 40: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

What now?

Page 41: CCC – Community Charting Components · 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 Solution

Page 42: CCC – Community Charting Components · 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 Solution

Chartbeans Project

Page 43: CCC – Community Charting Components · 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 Solution

Chartbeans Project

Pentaho initiative

Page 44: CCC – Community Charting Components · 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 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.

Page 45: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Chartbeans Project

Page 46: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Chartbeans Project

Write a java layer

Page 47: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Chartbeans Project

Charting terminologyWrite a java layer

Page 48: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Chartbeans Project

Chart Structure: ChartDocument and ChartModelCharting terminology

Write a java layer

Page 49: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Chartbeans Project

Chart Styling: stored in ChartElement instances.Chart Structure: ChartDocument and ChartModel

Charting terminologyWrite a java layer

Page 50: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Chartbeans Project

Generate a pluginChart Styling: stored in ChartElement instances.

Chart Structure: ChartDocument and ChartModelCharting terminology

Write a java layer

Page 51: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Chartbeans ProjectCall an xaction

Generate a pluginChart Styling: stored in ChartElement instances.

Chart Structure: ChartDocument and ChartModelCharting terminology

Write a java layer

Page 52: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include
Page 53: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Chartbeans ProjectCall an xaction

Generate a pluginChart Styling: stored in ChartElement instances.

Chart Structure: ChartDocument and ChartModelCharting terminology

Write a java layer

Page 54: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

What now?

Page 55: CCC – Community Charting Components · 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 Problem

Page 56: CCC – Community Charting Components · 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 Problem

Look at what our users need

Page 57: CCC – Community Charting Components · 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 Problem

Page 58: CCC – Community Charting Components · 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 Problem

Page 59: CCC – Community Charting Components · 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 Problem

Our users need

Answers!

Page 60: CCC – Community Charting Components · 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 Problem

Look at what we need

Page 61: CCC – Community Charting Components · 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 Problem

We need

Flexibility!

Page 62: CCC – Community Charting Components · 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 Answer

Page 63: CCC – Community Charting Components · 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 Answer

We don't need a charting library

Page 64: CCC – Community Charting Components · 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 Answer

We don't need a charting library

We need a visualization library

Page 65: CCC – Community Charting Components · 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 Answer

We don't need a charting library

We need a visualization library

That seamlessly integrates with our tools

Page 66: CCC – Community Charting Components · 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 Answer

Protovis

http://vis.stanford.edu/protovis/

Page 67: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Protovis

Page 68: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Protovis

Unlike low-level graphics libraries, Protovis defines marks through dynamic properties that encode data, allowing inheritance, scales and

layouts to simplify construction.

Page 69: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Protovis

Page 70: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Protovis

Page 71: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Protovis

Page 72: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Protovis

Red Green Blue Orange

5

10

15

20

Page 73: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Protovis

Page 74: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Protovis

Pros:

Cons:

Page 75: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Protovis

Pros:We can do whatever we want

Cons:

Page 76: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Protovis

Pros:We can do whatever we want

(and we'll never want to do 3d, sorry)

Cons:

Page 77: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

Protovis

Pros:We can do whatever we want

(and we'll never want to do 3d, sorry)

Cons:Requires knowledge

Can be time consuming

Page 78: CCC – Community Charting Components · 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 Project

Page 79: CCC – Community Charting Components · 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 Project

CCC – Community Charting Components

http://github.com/pmalves/ccc

Page 80: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

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

Page 81: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

CCC – Community Charting Components

Demonstration

Page 82: CCC – Community Charting Components · CCC – Community Charting Components CCC is a charting library on top of protovis with the aim to provide developers with a way to include

CCC – Community Charting Components