Muze by

Tableau-like visualizations in JavaScript (Open Source)

Muze allows you to build complex & highly-interactive charts in JavaScript (e.g., Visual crosstab, splom) through composable layers, using a data-first approach.

Use the in-browser DataModel, along with relational algebra and data operators to create Tableau-like visualizations in browser.

Muze is licensed under MIT - so get it now!

Would you recommend this product?
9 Reviews5.0/5
Hi, I’m Akash - one of the creators of Muze. I get this question asked often, and hence I thought to reply preemptively: “Why build another data visualization library in JavaScript, when there are so many”? Here is our take on it: - The current set of visualization libraries fall under 2 brackets: low-level visualization kernel (like d3), or black-box configurable charts (HighCharts, FusionCharts). With the former, you can achieve anything, but needs a lot of work & learning. With the latter, you’re restricted by the charts types/features/configuration offered by those libraries. - Most libraries are built view-first. You first decide what chart type to use, structure the data in that format, configure the visuals, and then render. However, anytime you need a different view of data (filter, aggregation, re-binning), you’ll have to rebuild the entire chart. With Muze, we’ve a taken a data-first approach, where you load your data in an in-browser DataModel, run relational algebra enabled data operators to get the right subset of data, and then just pass to Muze engine, which automatically renders the best visualization for it. Any changes to data (including application of data operations) automatically updates the visualization, without you having to do anything else. - With other libraries, if you’ve to connect multiple charts (for cross-interactivity, drill-down etc.), you’ve to manually write the ‘glue’ code. With Muze, all charts rendered from the same DataModel are automatically connected (enabling cross-filtering). - Muze allows faceting of data out of box (Tableau like rows/columns/colors/shapes etc.) with multi-grid layout. - Composability of visualizations allow you to create any kind of cartesian visualization with Muze, without having to wait for the charting library vendor to release it as a ‘new chart type’ - Muze exposes Developer-first API for enabling interactivity and customizations. You can use the low-level API to create complex interactions. Would love to get your feedback/comments/suggestions.
@1dot61803 Really well articulated reasons for building muze. Can you share a couple of details about your learnings while building this ?
@halvi - What we have seen so far is layouting multiple charts is a gruesome job. So we wanted to build the layouting feature in the library and exposed by a simple api. - Interaction and effects of interactions (tooltip etc..) needs a mental model which helps an user to customize the visualization during interaction. - Operations on data needs to have grammar otherwise there are high chances that there will be conflicting features in a complex visualization

Personally, it would be a heaven if this can be integrated with the R ecosystem.


Out of the box visual crosstab which is entry point to every viz, interaction mental model is giant, easy to create simple chart.


Only cartesian and polar coordinate supported so far.

We have geo support and integration with R and iPython on our radar. You can upvote / raise an issue

I think it's missing things like save as image and maybe a few buttons to make it more intuitive


Looks really nice, a lot of options and you can see that a lot of effort went into it


I got a lot of the extra features like average and zooms from playing around, it's not very intuitive