Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 5989403
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 22, 20262026-05-22T23:05:47+00:00 2026-05-22T23:05:47+00:00

TLDR: Does anyone have experience of both protovis & D3.js to illuminate the differences

  • 0

TLDR: Does anyone have experience of both protovis & D3.js to illuminate the differences between the two?

I’ve been playing with protovis for the last 2 weeks and it’s been great so far. Except now I seem to have hit a bit of a brick wall with animation.

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

I want to do some quite simple animation but with protovis it feels less than intuitive – I’m starting to think that protovis was never really meant for animation. So, I started looking at D3.js:

http://mbostock.github.com/d3/ex/stack.html

It looks very similar, but:

  • Seems more lightweight
  • Seems geared to interacting with other DOM elements as well as SVG
  • Seems geared to adding animations

Can anyone illuminate any other differences?

I’d be very grateful for any and all input

  • 1 1 Answer
  • 3 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-22T23:05:48+00:00Added an answer on May 22, 2026 at 11:05 pm

    I’ve done a fair amount of work with Protovis and a few things with D3. In addition to the points you mention, I think the following differences stand out for me:

    • Where Protovis provides a simplified abstraction layer between the visual properties you’re specifying, D3 uses the actual CSS and DOM specs – so instead of .width(10) or .fillStyle('#00C') you’d use .style('width', 10) or .attr('fill', '#00C'). In these examples, the difference is pretty trivial, but when you’re doing something like drawing a line in an SVG image, there are big differences. The result is that using D3 can feel a little lower-level – you have more control, but you have to be pretty familiar with SVG syntax to do some of the things Protovis does much more easily.

    • As you note, Protovis is all rendered in SVG, while D3 can use other parts of the DOM. This means that, for visualizations that don’t require SVG-based visual elements, you can use D3 even with browsers that don’t support SVG. It also means it’s much easier to integrate HTML and SVG in the same visualization, which is really nice for things like dealing with text (text manipulation and layout is pretty weak in Protovis).

    • D3 changes or drops some of the basic Protovis utilities like scales and data manipulation. I’m repeatedly annoyed that basic utilities like pv.sum() or pv.mean() don’t have D3 equivalents, though some, like .nest(), are shared across the two libraries. Edit 10/1/12: D3 has filled out its data utilities, but there are still a few that Protovis includes and D3 doesn’t, e.g. pv.dict, pv.numerate, and pv.repeat. Presumably they were left out because they were considered less generally useful.

    • D3 provides utilities for asynchronous requests. When I want this in Protovis, I generally have to use an external library (i.e. jQuery).

    • D3 API documentation is almost completely lacking incomplete, compared to quite detailed docs for Protovis. Edit (8/30/13): D3 now has complete and detailed API documentation on GitHub, so this point is no longer relevant.

    • Finally, I haven’t done much with animation, but I think you’re entirely correct – D3 provides more animation support than Protovis, especially in terms of animated transitions. Protovis can re-render some or all of the visualization on demand, but doesn’t have any support for stepping through a limited-duration animation – you’d have to code it all by hand with setInterval. D3 seems to make this a much more integral part of the library.

    Edit (7/12/11): It looks like there’s a new major difference – as of June 28, 2011, Protovis is no longer under active development, and the Protovis team is pushing D3.js instead. The last release is quite stable, so this shouldn’t prevent you from using it, but it’s definitely a point to consider.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

if (reader.is_lazy()) goto tldr; I have a background thread that does some I/O-intensive background
(TLDR? Skip to the last couple of paragraphs for the questions...) I have a
tl,dr:How can I rotate between two different pages in my DIV? Hi, I am
I have a computed column in MS SQL 2005 that does some VAT calculations.
I've been trying my hand at optimising some code I have using microsoft's sse
What's the difference between ember.js Object methods extend and create ? TLDR: You will
tldr: Why does ('placeholder' in inputElemnt) equal true in IE8 despite no native support
TLDR; How does various boosting types work together in django, django-haystack and solr? I
TLDR: Does there exist reusable code for automatically reconnecting to a TCP server that
I have a procedure which performs some task, but performs it in two slightly

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.