D3.js in Action: Data visualization with JavaScript
M**N
Regret buying ... skip this one unless you enjoy frustration
I'm really surprised by the positive reviews of this book. This second edition is in fact inferior to the first edition and in my opinion, a terrible book to learn D3. Even for advanced programmer and those looking to refresh their D3 skills, this book was a huge disappointment given Manning publication's reputation as a quality publisher of technical books.I can't go into all the details but as the material gets more difficult, instead of explaining and teaching, the author merely describes what to do then leaves the reader dangling. This all starts around chapter 3 when the author just glosses over very important concept critical to understanding what he wants to teach.Here is an example from chapter 4:“Although we can write our own offset functions to create exotic charts, D3 includes several functions to achieve the typical effects we’re looking for. We’ll use the d3.stackOffsetSilhouette keyword, which centers the drawing of the stacked areas around the middle. Another method you’ll need to take advantage of for creating streamgraphs is .order(), which determines the order in which areas are drawn so that you can alternate them like in a streamgraph. We’ll use d3.stackOrderInsideOut because that produces the best streamgraph effect. ”No where does the author even attempt to teach stackOffsetSilhouette, order or stackOrderInsideOut. Readers are forced to dig through D3's documentation or go to outside resources but then why bother with this book?Here's another example from chapter 5:“If we nest the test results hierarchically, we can’t use a data visualization that shows numeric values well. We’ll be left with the color we were using to encode statistically significant wins and losses in metrics. But though we lose numerical precision, we gain the ability to see the pattern of wins and losses across our dimensions. Three cells, 4 subscription categories, 20 countries, 5 metrics = 1200 different combinations. That would be a pretty long table, but in a hierarchical data visualization like a circle pack, it looks like figure 6.3.”Why not show us the ways one approach could create errors or difficulties then show the proper way? Instead I have no idea what the author is attempting to say with that passage.
J**R
Great book for more experienced developers on D3.js.
D3.js in Action is a great book on D3v4 but, just like Interactive Data Visualization for the Web: An Introduction to Designing with D3 , it is not for everyone. Someone looking for a book on D3.js and D3v4 in particular would most likely hesitate between these two options so it's only logical to compare them.D3.js in Action is much more ambitious in scope and complexity. The flip side of that is that it doesn't have the gentle pace of Interactive Data Visualization for the Web. As such, I would recommend D3.js in Action for people who either have experience with front-end development or with earlier versions of D3.js. D3.js in Action could also be seen as the tome 2 to Interactive Data Visualization for the Web.I found parts 2 and 3 of the book to be the most relevant. Part 2 covers more advanced use cases of D3.js such as hierarchical layouts. While there is ample documentation and examples on the web on how to do that, to the best of my knowledge, this wasn't covered in a book until now.Part 3 goes beyond D3.js, with a very topical discussion on how D3.js and React can share responsibilities, or on mixed-mode rendering - that is, how to create visualizations that mix Canvas and SVG. D3v4 brings new features for canvas rendering, so it's a very welcome addition.Overall D3.js in Action offers a unique perspective on this subject and is a great resource to learn more advanced aspects of D3.js.
U**R
Imprecise language all over. Bad communicator. Just pretty pictures all over the place!
If you have read the books by the creators of C or C++, or Flanagans's "JavaScript: The Definitive Guide", you must have marveled at how much information is lucidly communicated in a very precise language. Some concepts may be hard, but If you read or reread the passage you will understand the foundational concepts so clearly and forever! So, the use of words like invoke, declare, define, initialize, call, function, keyword, construct, etc. are used by these authors so carefully --and this is what one would expect of course.Enter Mr. Meek's book:After reading a few pages it becomes all too apparent that the author either doesn't have a clue as to what those words I mentioned above means, or does not care to use appropriately. Ex: in the expression d3.force(), force is a keyword for him, in the expression d3.update(), he says update is not a function, and on and on and on!But this is only the beginning of the problem.Next is conveying concepts. Here is how he explains one of the most central concepts in d3 --the d3.selectAll():Begin snippet:d3.selectAll()The first part of any selection is d3.select() or d3.selectAll() with a CSS identifier that corresponds to a part of the DOM. Often no elements match the identifier, which is referred to as an empty selection, because you want to create new elements on the page using the .enter() function. You can make a selection on a selection to designate how to create and modify child elements of a specific DOM element. Note that a subselection won’t automatically generate a parent. The parent must already exist, or you’ll need to create one using .append(). (Kindle Locations 1453-1457)End snippet.Good luck understanding that.
[**]
Recommended
Great book, well structured examples which develop a data model to be an all singing all dancing js example.Good explanations
A**7
A decent book on d3
The book has good intentions but I'd have preferred a more systematic look at d3's features. It seems to jump around a lot, introduce a concept, promise to explain it later and then only touch on it briefly when it does.The code examples can be unclear due to the way they are presented.Overall it's OK but I think there are probably better books out there, especially if you are a complete beginner with d3.
Trustpilot
2 days ago
1 day ago