Note that it's not free (as in speech) software, nor is it free to use for commercial projects. Just a PSA, I don't think there's any point in discussing the pros and cons of that; not that I can stop anyone.
No apology necessary, as there isn't a useful distinction between "form" and "substance" here = )
My dev background is in the Clojure community, where Rich sets a strong tone about the importance of discussing tradeoffs.
We outlined those tradeoffs explicitly on the site because that's always what's on the forefront of my mind when making a technical decision.
I'm glad you found it helpful.
I came here to praise 'Where is Variance not a good fit?' as well. This is a great introduction, I wish everything had this level of detail on the landing page. I find it infuriating (everywhere from Unix command line to websites for new tools ) not to have a clear answer to the question of 'why you should/should not use this.'
I also admire the upfront and clear explanation. For people who are about to make a decision this helps immensely.
Everyone should learn from this: there is no point in overhyping or hiding things — I will discover these tradeoffs eventually anyway, so why not save everyone some time and clarify them upfront?
This is really cool. I initially thought from the name that this only supported one type of chart (variance) but it actually has line, bar, scatterplot, dotplot, boxplot and range. I couldn't see it explicitly stated but I think you could build your own charts as well. https://variancecharts.com/examples/
Also, the pricing and licensing model seems right on. As a consultant, this is the cost of a couple of billable hours. I wouldn't hesitate to use it for a client project where they needed these kinds of graphs. https://variancecharts.com/examples/
This reminds me a lot of Vega (https://github.com/trifacta/vega), albeit using a HTML/CSS approach as opposed to a JSON one. By default, I'm excited for new ways to approach data visualization, since its a really exciting topic with no clear winners.
I was worried about the hefty price tag until I realized that it was free for non-commercial projects. Will definitely try and play around with it this weekend, as I imagine combining this with basic Python templating could be an even stronger dataviz REPL than mpld3 or vincent.
Variance, like Vega, draws a ton from Wilkinson's "Grammar of Graphics". In particular I wanted something like Hadley Wickham's ggplot2 R library, but on the web.
I toyed with the idea of an explicit data format that could be generated by different tools (I talked about this at the 2012 Clojure/conj https://www.youtube.com/watch?v=xyGggdg31mc).
Conceptually that route is cleaner.
However, the reality is that any such scheme requires "escape hatches" to drop into the target representation (be it HTML/CSS, Canvas, &c.).
We decided it would be best to embrace a single target, HTML+CSS, rather than try to build an abstraction targeting multiple final rendering systems.
Could you comment on how easily one very familiar with Wilkinson's work and Hadley's ggplot2 might pick up this tool and produce useful visualization? How similar is the syntax? How does it compare to R's Shiny applications? Is it possible, for example, to update part of a visualization only rather than redraw the whole thing?
I have played with Bokeh! The capabilities seem really impressive but my main problem with it is its lack of embeddability and flexibility, which I imagine will get ironed out as it matures (though the Python bindings are on point).
The example graphs confuse dependent and independent variables, putting quarters on the vertical axis. This makes the curve look negative, when in fact it's positive (up and to the right - usually a good thing). This really takes away from the example, as it takes seemingly important business data, and renders it in a negative way that I wouldn't expect or like. I strongly suggest correcting the example.
I tend to prefer horizontal bar to vertical bar charts for English graphics because the label text reads left-to-right, making it easier to read.
It's a good observation though; readers often expect the independent variable to be on the abscissa.
We'll be discussing these kinds of graphical decisions in a series of free articles on the site.
I noticed this uses AngularJS under the hood. How would it play in an existing AngularJS app - can we install it as a module? Also, how would one do stacked bar charts?
We haven't exposed it on the site yet, but if you have an existing Angular.js app then you can import Variance as an Angular module for a cost of about 34kB.
Email variancecharts@generalreactives.com and we can get you squared away.
Variance is currently built on Angular, but that's not part of the public API contract.
It's very likely that at a future point we will whip up a faster/leaner DOM compiler and drop 100kB of Angular features that Variance does not need.
Nicely done. Some support for real-time updates would be a hit (using eg a firebase websocket URL as a data source, or a JSONP url for interval polling).
They seem to push the idea of the ability to build charts without JavaScript. On the other hand, I have to learn their XML markup. Is the markup universal in anyway or is it proprietary to their charting library?
these charts are exceedingly pretty- i couldn't tell from the examples if there are things included to make them more interactive or not (hover info, zoom in and out etc)
I too would like to know if anything is planned for built-in support for things like hover states, tooltips, etc, so that users can inspect/explore/drill-into the data shown in a Variance-powered chart.
We have some stuff planned, but nothing on a firm timeline.
That said, remember that Variance was designed to embrace HTML and CSS.
You want hover effects? Use a plain ol' CSS selector.
If you want something more elaborate, you can definitely just throw some classes onto different parts of your visualization and use other JS libraries like Bootstrap's tooltips.
Cool, thanks. I have already played around a bit with adding some hover effects etc, which is indeed straightforward since I can just use a plain old selector as you mention, etc.
I need to mess around to see if there is a straightforward way I could get a reference to the underlying data item (the row in the .csv for many of your examples, etc) from the context of a callback that fires on say $('bar').hover() or what have you. Will look into it.
It appears the styling for both site and app are broken on IE11. Sticky footer floats in the middle of the page, labels aren't distributing across axes, and lines seem to be missing from the graph itself.
Probably because someone put in a lot of effort to write visualization software that isn't dwarf fortress-esque and would like to be compensated for it.
If you'd like to build an equivalent open-source library, though, you have my vote.
I mean this is the obvious answer, but I don't find it holds muster when considering open source projects like Linux and gcc, two projects who are immensely more complicated and are entirely Free.
I just wonder what it is about visualization that lends itself to monetization.
Linux and gcc are somewhat atypical, IMO. They are also both developer-oriented tools rather than layman-oriented tools (though Linux is rapidly moving to be more layman-friendly, granted!).
I would argue that among tools written for the layman, the commercial versions seem to be better than their OSS counterparts. This isn't universally true, but people without expertise are often willing to pay some money to not have to develop expertise. When it comes to visualization libraries, there are plenty of high-quality visualization tools that are highly accessible to the experienced developer, but not to the layman. Developers don't have much incentive to make them easier for the layman to use outside of financial motivation.
If you are looking for an open-souce plot library that works from JS, python, scala (and potentially driven from any language) you should check out Bokeh. http://bokeh.pydata.org
Having to load the "free" version from the variance cdn is the showstopper here.
I really refrain from sending my users data to anyone else, that is without my control. So sadly, as beautiful, as I find this, I have to refrain from using it in my non profit projects.
You are loading the JavaScript library from the CDN into a browser. The data also goes to the browser, not to their CDN. So if sending your data to them is the show stopper for you, that shouldn't stop the show since that's not what happens.
Is it just me or does naming a plotting lib after a common prob/stat concept seem like a bad idea. Makes it a bit of a pain to search for information about.
Variance is production-oriented which, for data visualization, requires a ton of the "designer interface" as much as it does from the "developer/analyst interface".
The CSS is broken out into necessary structural bits (where everything is gray, there are no margins, &c.) and then into visual themes.
If you aren't a designer, you can just use the stock theme.
If you are a designer then you can start from the ground up to build the visual identity that you need.
At no point do you ever have to start throwing `!important` everywhere to override our styling decisions.
We intend to release actual SASS/Compass mixins so that you can generate the structural CSS directly in your workflow instead of juggling multiple CSS files and their implicit relationships.
As for IE9, it's all flexbox issues.
All of the charts are responsive, and Variance leans on flexbox CSS quite a bit (which IE9 does not support).
I think what was meant was whether Variance comes with built-in themes. At least that was my first question — having a set of well-designed themes would add a lot of value.
Edit: parent posted "Pricing starts at $499... ouch :("
I made this comment below as well but it seems applicable here:
> The pricing and licensing model seems right on. As a consultant, this is the cost of a couple of billable hours. I wouldn't hesitate to use it for a client project where they needed these kinds of graphs. https://variancecharts.com/examples/
If you need this kind of thing and are being paid to do it then this is small potatoes to most consultancy/software development companies. $500 is a lot to come out of your pocket but negligible to your employer. And it's free for non-commercial use.