bcwalrus ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 15 years ago
..
examples ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 15 years ago
js ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 15 years ago
jsdoc ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 15 years ago
Makefile ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 15 years ago
README ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 15 years ago
README_HUE ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 15 years ago
protovis-d3.1.js ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 15 years ago
protovis-r3.1.js ae333e405b hue (formerly Cloudera Desktop) from internal commit 4694ac0434dad85170854c5378a389585d87f679 15 years ago

README

New in version 3.1:

This is a minor release including a few bug fixes and minor new features. For
more details on the new release, see:

http://code.google.com/p/protovis-js/wiki/ReleaseNotes

- panels now support an "overflow" property; set to "hidden" for clipping
- linear and log scales support tick formatting
- ordinal scale supports pv.index accessor
- log scale invert supports negative values
- avoid removing children on render to avoid spurious events

New in version 3.0:

We've moved all the documentation to the wiki so that it's easier to maintain.
Feel free to add your comments. (And, if you're so inclined, join the group so
you can contribute!)

interaction
- properties now behave consistently in event handlers
- use local variables or properties to modify display
- can redraw at any level of the scene graph
- event handlers on parent panels are inherited by children
- can set window location to simulate links
- mark.mouse to get mouse location

local variables (defs)
- use "def" to define local state per mark (e.g., def("foo"))
- event handlers can override def values (e.g., this.foo(42))
- properties can query def values (e.g., this.foo() == 42)
- can also be used to define efficient property functions (e.g., scales)

scales
- pv.Scales is dead; long live pv.Scale
- scales each have a domain (input data) and range (output pixels/color/angle)
- scales are stateful, not magical
- ordinal scales are categorical (discrete domain and range)
- linear and log scales are quantiative (continuous domain and range)
- `by` functionality, useful as a "view"
- support for ticks, interaction, and more!

colors
- default coloring now uses parent rather than (magical) mark index
- brighter and darker operators
- named colors (e.g., pv.ramp("brown", "orange"))
- `by` functionality standardized
- HSL to RGB conversion bug fixed
- per channel override methods (e.g. color.red(0))
- pv.Colors now uses pv.Scale.Ordinal under the hood

layouts
- treemaps!
- sunbursts!
- icicles!
- tree size function for determining node size / children
- stack: allows stacking of bars and areas (etc.) with customizable baseline
- grid: two-dimensional table of bars or panels (heatmap, e.g.)

properties
- evaluated in the order they are defined, allowing dependencies
- defs are evaluated before properties; constants before functions
- default data property is [d] rather than [null], simplifying nesting
- significant performance improvements!
- width and height now supported on rules

data utilities
- pv.repeat for array repetition
- pv.random for random integers (or intervals)
- pv.log{,Adjusted,Symmetric,Floor,Ceil}
- pv.transpose for transposing two-dimensional arrays
- pv.Vector for 2D geometry
- pv.tree and pv.flatten for converting between tabular and hierarchical data

lines and areas
- can be "segmented" for variable lineWidth, color, visibility
- segmentation can change dynamically (e.g., on mouseover tooltip refinement)
- see Napoleon's March and animated examples
- step functions!

anchors
- now use a single class, pv.Anchor
- define properties like normal marks
- support for anchors on root panel / anchors on panels

performance improvements
- separated rendering from building to allow pluggable renderers
- optimized evaluation of properties
- don't wrap constants in functions
- "bind" phase caches inherited property definitions
- minimize SVG output
- job voyager is about 2x faster

bug fixes
- much more robust rebuild + re-render
- panel stroke now goes over children (consistent with images)
- circle dots with large lineWidths now render correctly
- reverse property now more robut
- type attribute now inherited; controls rendering behavior
- better JavaScript minification
- use typeof == "function" rather than instanceof Function
- internal scene graph structure changed to facilitate traversal
- panel left/top/right/bottom now consistent with other marks
- better support for Date.parse and Date.format