
Introducing d3-scale - Zikes
https://medium.com/@mbostock/introducing-d3-scale-61980c51545f#.9qmfpjj3d
======
danso
To dovetail off another HN thread (Free Springer math books)...after reading
Bostock's piece, I suddenly realized that the classic Grammar of Graphics by
Leland Wilkinson he quotes might be free...and it is! The 1999 version anyway:

[http://link.springer.com/search?query=grammar+of+graphics](http://link.springer.com/search?query=grammar+of+graphics)

On Amazon, the cheapest available price is ~$55. For the second edition, which
was printed in 2005 (and should be due to be free soon on Springer), it costs
$132+

~~~
selvan
Book "ggplot2 (grammer of graphics plot) - Elegant Graphics for Data Analysis"
is hosted on github :
[https://github.com/hadley/ggplot2-book](https://github.com/hadley/ggplot2-book)

------
mbostock
Author here, AMA.

~~~
lfittl
I'd love for d3 to have great integration with React - whats your suggested
approach?

[https://github.com/FormidableLabs/victory](https://github.com/FormidableLabs/victory)
seems most promising, but isn't really d3, more "d3-like".

~~~
mbostock
I haven’t used React enough to form a strong opinion on right vs. wrong, but
one of my objectives in decoupling D3 (see the new modules at
[https://github.com/d3](https://github.com/d3)) is to make it easier for
people to use just the parts of D3 they need.

------
Simorgh
I really feel Bostock et al. are creating art. I'm just learning D3 at the
moment and I am consistently blown away by its elegance.

~~~
abusque
I read an article about the similarities and differences between data art and
data visualisation a short while back (couple of weeks?), but I really can't
seem to find it right now. Mike Bostock's visualisations, though very visually
pleasing, always tend towards the functional side of the spectrum, serving a
purpose of enhancing the comprehension of concepts or relationships that lie
in the data, rather than being designed for purely æsthetic aspirations.

There's obviously a place for both visualisations and art, though, and the
line between the two is not always clearly defined.

~~~
doorhammer
Think this might be the article you're looking for; figured I'd throw a link
out in case it was:
[http://lisacharlotterost.github.io/](http://lisacharlotterost.github.io/)

Was posted recently. Comments:
[https://news.ycombinator.com/item?id=10737876](https://news.ycombinator.com/item?id=10737876)

------
coldtea
> _To this end, D3 espouses abstractions that are useful for any visualization
> application and rejects the tyranny of charts._

Hmm, a lot of projects floundered when they got that (meta/abstract)ambitious,
and forgot the plainer beginnings that made them successful. Hope D3 can pull
it off.

~~~
mbostock
This is not a new ambition; it has been my goal since starting Protovis in
2009. It’s working out okay so far, but I totally agree that things can go off
the rails if you spend too much time thinking about abstraction and not about
practical examples and real-world usage.

------
graffitici
Is the idea to have the next version of d3 be completely modular? So that if
we use a tool like webpack, we'll he able to pull in the parts that we need?

~~~
mbostock
Yes. I wrote a little bit more about that here:
[https://medium.com/@mbostock/let-s-make-
a-d3-plugin-c8e69759...](https://medium.com/@mbostock/let-s-make-
a-d3-plugin-c8e697599f48)

------
rodionos
Mike, I'm big fan of your work. Have been using it since early releases.

I'd love to hear your thoughts on how to make visualization more appealing for
non-programming users who want to interact with data beyond the basic clicks
and drops.

> D3 ... rejects the tyranny of charts

Let me share a couple of counter-examples that attempt to accomplish the
opposite, albeit for the common good:

[http://apps.axibase.com/chartlab/14cf1974/3/](http://apps.axibase.com/chartlab/14cf1974/3/)
\- Basic

[http://apps.axibase.com/chartlab/2111a2b7/2/](http://apps.axibase.com/chartlab/2111a2b7/2/)
\- Inheritance and Iterator

[http://apps.axibase.com/chartlab/e8635882/10/](http://apps.axibase.com/chartlab/e8635882/10/)
\- Time series transformations

[http://apps.axibase.com/chartlab/2ef08f32/1/](http://apps.axibase.com/chartlab/2ef08f32/1/)
\- Composite

What you see is a set of charts built with D3 under the hood and placed on
grid layout with a mix of configuration settings and basic control structures.
What's unusual in this approach is that it introduces end-users to
programmable visualization through a simplified DSL. It helps users step
outside of GUI editor sandbox and yet it doesn't expose them directly to
JavaScript and SVG.

I'd appreciate your critique of this approach in general, not necessarily our
implementation of it :) Is this level of "tyranny" acceptable in your view?

------
ddoolin
I personally make the better part of my living off being able to do custom D3
visualizations with some degree of speed and flexibility, so thank you Mike
for your continued contributions and making it free for the rest of us. I'm
seriously looking forward to D3v4 ;)

~~~
chubot
That's very cool -- what kind of clients do you have? Any examples that can be
shared?

Are people using D3 inside "enterprises" a lot for business intelligence
stuff? I imagine that would be the kind of work that pays.

~~~
infinite8s
Lots of contract D3 work here - [https://groups.google.com/forum/#!forum/data-
vis-jobs](https://groups.google.com/forum/#!forum/data-vis-jobs)

------
d--b
Hey Mike, glad you're doing a AMA. I have a few questions:

1\. There is no great javascript library for manipulating data, like pandas
for python. Are you interesting in starting one as part as a d3 module? This
could benefit from d3 being a standard and from your experience in writing
javascript code.

2\. Do you regret the original .enter() .exit() functions? These were
powerful, but were a barrier for entry because they were hard to grasp. Do you
wish you'd gone full functional from the start?

3\. How do you get paid? Are you sponsored? Are you looking for sponsors?

Thanks much for the great work!

~~~
mbostock
1\. There’s room for improvement here. There’s some useful stuff in d3-array
([https://github.com/d3/d3-array](https://github.com/d3/d3-array)),
particularly the nest and histogram operators. There’s also science.js
([https://github.com/jasondavies/science.js](https://github.com/jasondavies/science.js)).
And UW’s datalib
([https://vega.github.io/datalib/](https://vega.github.io/datalib/)), which is
partly a wrapper of d3-request, d3-dsv, d3-array and d3-random. New D3 modules
or contributions would be welcome.

2\. Not at all; I still think the data-join is a powerful concept for
transforming the DOM based on data, and the new work on non-DOM D3 modules
does not reflect a shift in my opinion. I’m simply decoupling D3 so that
people can use the parts independently. I’m still developing the new
d3-selection and d3-transition modules, and those will be released soon, but
I’m saving them for last because I want to let the design “bake” to make sure
I’m happy with it before release.

3\. I am not currently paid (other than a buck or two I make off stickers). My
wife is currently my de facto sponsor. ;) I’d like to find a way to make this
financially sustainable, but I don’t know yet exactly what that will entail,
and I’d like to get 4.0 released first.

~~~
jalammar
D3 Stickers link:
[https://www.stickermule.com/user/1070696243/stickers](https://www.stickermule.com/user/1070696243/stickers)

Mike, your work never fails to inspire. The cubism slides
([http://bost.ocks.org/mike/cubism/intro/#0](http://bost.ocks.org/mike/cubism/intro/#0))
read like a revelation. It astounded me how much data you manage to
beautifully convey.

------
hackaflocka
Nomenclature is becoming confusing. In "R" (the statistical programming
language), vector is analogous to column, and now in D3, vector is analogous
to row.

~~~
cls59
Could just be the difference between storing arrays in memory using row-major
order vs. column-major order. Not sure which ordering JavaScript uses, but R
is definitely column-major.

------
ixtli
mbostock is a machines. The size and gravity of the work he does always
impresses me.

------
leadgen
Just want to say thank you very much for what you are doing. You should add
Donate button so we can contribute towards your efforts.

------
deboboy
Would love to see a design surface like Webflow for D3. Then you would get
high-fidelity 'create' mode while retaining fine control of SVG
programmability.

------
adamwong246
This is great! I use D3 with blaze and it will be nice to be able to exclude
all the data binding stuff I don't need.

------
ilostmykeys
Mike

Have you toyed around with MathBox 2? It looks like it has a pretty
interesting model.

