Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login
Plot.ly: Matlab for the Web (plot.ly) similar stories update story
134.0 points by jparmer | karma 194 | avg karma 4.13 2013-05-08 00:48:54+00:00 | hide | past | favorite | 68 comments

I've been working on this tool for a few months. Would love to hear any and all feedback from the HN community and MATLAB/Numpy folks.


view as:

Thoughts?

I don't use matlab-esque tools that much, so I can't really comment on the functionality, but from a web dev perspective, it's really cool! How long did it take you guys to build it?

It took two of us about 6 months, with one of us part-time and a few friends helping after their day jobs.

Dude, that click-drag is nasstyy! Great work.

It feels confusing and distracting, not affording a "zoom" function.

The 'paste' event is sweeeeet.

Nice work!

Double click to autoscale is intuitive. Love the simple click to change Title/axis label.


Great work! UI is amazing and very impressive, except that "zoom" context menu.

Looks awesome - and a bit overwhelming at first. Perhaps include a link to the tutorial in the very first popup window?

I was just thinking about making something like this after finishing my college stats class. I'm not sure if I just don't see it, but it would be cool to add in some statistics stuff, mean, variance, linear regression estimates and stuff like that.

Hey jferge, Thanks for the feedback. You can already do linear (and polynomial) regression through the plotly spreadsheet GUI. Way easier than Excel, imo:

Linear fit with dates: https://plot.ly/~jackp/487 Partial linear fit): https://plot.ly/~jackp/489 5th order polynomial fit: https://plot.ly/~jackp/490


Retina macbook pro early 2013, chrome 26. Zooming some of the plots is noticably slow (and zooming out of the Hopf Bifurcation plot occasionally causes chrome to stop responding)

Cool, thanks. We could probably tone down the size of our demos.

First of all, it's gorgeous, far more visually pleasing than Matlab's plotting tools, which still seem to lack a decent compositing engine.

As far as UX, I would expect click+drag to move the graph, but instead it gives me a context menu to zoom. (And why is "zoom out" in that context menu? Why do I need to select anything for that?) It would also be nice to be able to zoom into a point with the scroll wheel. Also, the command line doesn't seem to work at all in Firefox Nightly, and is quite slow to respond in Safari.

I'm also a little curious how the concept will work out. There aren't many situations where I've wanted to put an interactive plot up online, and I suspect that the online Python environment is too limited for me to do my data analysis online (although perhaps this is your eventual plan?). If I could put my locally generated plots on plot.ly directly from Matlab/Python/Julia, I could see myself sending (private) links to online plots to my collaborators, but I'm not sure I'd pay for the privilege.


> As far as UX, I would expect click+drag to move the graph, but instead it gives me a context menu to zoom.

My impression was after reading this is that I expected to be able to drag the graph by holding cmd, option, ctr, or shift with click and drag. It turned out to be shift.

I think I get this expectation from autocad, labview, mathematica and potentially other products as well.


Cool. Really helpful stuff.

Thanks for the feedback! We're most excited about collaborative data analysis. Imagine being able to simultaneously view/edit a graph and script for a computational problem being solved in a team... Programmers can do this in git, but a data scientist might want a tool that is more visual and focused around graphs. I worked at a semiconductor R&D company for a while and we often shared scripts and graphs by email... it felt like the 90s (:

Agreed with the UX criticisms -- scroll wheel is essential. And dragging isn't discoverable enough.

Interface generally is still a little rough: it wasn't clear to me how to enable scatter points (as well as lines) because it looked liked I'd chosen the scatter type/size/colour etc, but it turns out I hadn't enabled the "line+point" mode.

As far as I'm concerned, any graph element should be clickable and should bring up options to change it, e.g. the axes format. Lack of font options (webfonts maybe?) also a problem.

I clicked one of the examples, clicked "show data" and then clicked "plot data" expecting it to go back to the graph, but instead it wasn't really clear how to do that -- and then I saw the original graph was still there as a tab. I don't know if it was still linked to the data or if the data tab was just a copy -- I tried changing a random data point to test, when back to the graph, and it was stuck updating.

I only took the time to type up these criticisms/UX issues because I really, really like this product. The web is sorely in need of a great plotting solution and this looks really cool. Just a little rough around the edges, that's all!


Awesome. All super helpful stuff. Thanks so much for taking the time!

extremely cool, guys! Especially liked the script functionality. Just brainstorming: Do you guys have an API one could use to send python code to your app? Or even get back the plot to embed it in one's own app? That'd be helpful for many other (python based) web apps, I'd think. P.S.: Where are the "Share/Tweet" buttons? :-)

I am working on a site with the ability to update embeddable graphs via API and a python library/CLI tool at https://graphit.io

very nice. I'll keep an eye on it.

Check out Share/Tweet options under "Share" on the graphing toolbar. Here's a log-log graph my colleague shared, for example: https://plot.ly/~alex/13/

yes, that would be sharing my stuff with colleagues. I only wanted to quickly tweet about you guys w/o searching for your handle on twitter.

Is there a monetization strategy? Seems like I see things like this popup every couple months. Is there really a demand?

Lots of private companies with R&D don't like their data leaving the building, but want a collaborative tool that's more technical than G docs. We're exploring this space, hopefully while providing a kick-ass, free or very cheap graphing tool for the public at large.

In my experience the public at large is satisfied with Excel/Numbers, while scientists prefer their power tools like R or Matlab. Perhaps you should pivot and build something like RStudio but for numpy.

Isn't IPython essentially RStudio for Python? I'm greatly enamored of IPython Notebook's general approach to organizing data analysis (see http://ipython.org/notebook.html), although 1) it currently lacks interactive plotting tools and 2) I think it's targeted toward a more technical audience than this.

To take that a step further, Continuum Analytics has a product called Wakari[1] that is pretty much a web-based, sandboxed, nicely glued together version of everything mentioned in this thread: python environment, IDE, IPython notebook, interactive plotting, collaborative sharing, SSH console, file manager, dataset manager. It hooks into various APIs, S3, etc., and based on my usage so far it is very good UI/UX decisions... almost as if actual scientists designed it.

Of course, it is not free! Right now it's in beta and (I think) anyone can try it though. I'm not sure what their plan is for pricing, although I do believe they mentioned a local install option for clients who don't want their data walking out of the building.

(I am in no way affiliated)

[1] http://www.wakari.io


Actually, it is free!

There are paid plans but there will always be a free tier, at least if I have anything to say about it. The pricing plans are here: https://www.wakari.io/plans

There is also an enterprise version that customers can install on their own premises or cluster.


Thank you for your kind comments.

The lowest tier of service will remain free after the beta is finished. The free tier gives you access to a lot less resources, but it should still be useful.

Within the next week, we'll be pushing Ipython clustering. You'll be able to pay for additional compute nodes of various sizes and Wakari will provision them and integrate them into an Ipcluster.


Thanks for correcting me, both of you. Goes to show that you can't trust everything people say on the internet :-)

Seriously though, great work on your whole product suite! I keep finding myself going "I wish it would.... oh, it does.", and that's the kind of thing that will keep me around.

side note: when viewing a slice of the yahoo dataset plotted interactively in wakari, the zoom tool seems to completely crap out. the whole notebook hangs. updated chrome on win 7.


How big was the slice? Were you trying to plot with bokeh or matplotlib?

Bokeh, and it was a complete vertical slice through the stocks "dataframe"... so one point for how every many tickers there are... probably around 3300?

It's a lot of points, but I was just pointing out that it wasn't slow, it failed.


Thanks for letting us know! We are actively working on Bokeh, and the version that's there is still pretty early-stage. This will definitely improve in the coming months.

Thanks for the feedback.

Back to my previous post, the ipython clustering I mentioned was pushed to production tonight. There might be some rough edges around it, but we want to get it out so people can start using it.

Feel free to send feedback through our support channel or even chat through the integrated chat service. It's mostly developers fielding the chats. But mainly we'd love to hear about your perspective. We want to make sure the service is geared around data, people, and workflows and not just the latest or hippest technologies.


IPython is not like RStudio, at all. The closest Python thing to RStudio is Spyder (spyderlib.googlecode.com).

IPython Notebook can serve similar purposes of data exploration as RStudio, however.


One is to sell the technology and team to a larger company that building a suite of cloud-based related products. For example this might complement the Google Docs suite well, or any cloud-based data analysis toolkit suite.


It would be awesome if the graphs enabled mouseovers (e.g. bar chart where you can mouse over each bar to get additional info). Unless I missed something and this is already a feature...

No mouseover yet - Thanks for the feedback!

Cool beans. MATLAB's plotting tools need to improve a lot, and hence i use export_fig.m a lot. Is a Skydrive option in the works?

I agree - matlab's plotting is not nice, but found ggplot2 and never turned back (also had to switch languages though)

Only google drive and dropbox so far. Just curious, why not dropbox?

Well, some people think of skydrive as superior to DB (myself included). E.g. if you are a student and bought MS Office, you get 20gb skydrive storage for free. Also your normal free storage is at 7gb. And it's conveniently tyed into outlook.com, which still has push support unlike gmail. Also (of course personal tAste, too) but I prefere MS's online Office over google's.

I think skydrive support would be great :)!

Btw, really really well done from what I tried!


SkyDrive support, please. I use it since it integrates into Windows so well, and especially Office 2013. It also helps that my account is old enough that I have 25GB free storage.

I don't trust Dropbox security wise. Google does so many product launches/retirements that I don't trust anything beyond search and Chrome to stay around.


Because I like Skydrive's web interface a lot, and Office Web apps preserve document fidelity. I am presently writing a research paper and sending job apps, and I find Office Webapps a godsend boon for this purpose. I will not move to Google drive or Dropbox.

This looks great so far. I'd remove the drop shadows on the zoom box, and remove the context menu. If you click and drag a box, it should automatically zoom in, and reset zoom when you double click (as it currently does), with zoom out as a separate tool or shortcut.

Awesome, Thanks for the feedback. Seems HN has consensus on this one.

I was thinking about developing something similar, nice work! an extension of this idea to 3D plots using WebGL would be awesome. I'd love to have more interactive plotting features for presenting scientific results on the web.

We're slowly churning out 3d. Here's a preview: pic.twitter.com/jVaZsDOv7x

It seems more like gnuplot than matlab. Can I write matlab code?

Perhaps the poster used Matlab just to plot things.

I agree. This is a subset of Matlab.

Interesting idea, though I just finished a course in Matlab so this seems laughably inadequate. My biggest issue with these visualize tools is that you can't really choose how to visualize things, meaning unless the creator has thought of that idea as plausible you can't use it, I like to manipulate data in many ways and these (socrata, manyeyes, etc) just don't seem to think the same way I do...

Edit: just saw the command line button, this may actually be awesome!


Wow. Great UI! The selling point for me is the ability to simply plot points using python code in a browser.

Finally. I've been saying this should be done for ages[1]

[1] Here's a 2010 blog post I made saying "do matlab in JS, make money". http://www.puremango.co.uk/2010/10/ten-ideas/


Except this isn't what this is. Matlab is far more than a plotting tool, and requires heavy computational resources: the closest you're going to get to Matlab in the browser is a hosted ipython/sage-style solution (which already exists, albeit in a form that isn't user-friendly enough).

What about mathics? http://www.mathics.org/

(just to be clear - I know mathics is a hosted solution, and uses Sage. I'm asking, does this meet your 'user friendly enough' criteria)


In fact we (Wolfram) hired the primary Mathics developer to work on Mathematica Online, which will be released in the next few months: http://www.wolfram.com/mathematica-online/

Beta testers wanted!


What about Wakari[1]? Full Python and IPython, in the browser, backed by AWS, online interactive plotting (via Bokeh[2]). One click sharing of IPython notebooks. Enterprise version is installable on your own machine or cluster.

[1] http://wakari.io [2] http://github.com/ContinuumIO/bokeh


can anybody please explain how to plot in it using python i tried example

x=[5,7,9,3,1,8,12] y=[3,7,6,1,7,11,8] plot(x,y)

after clicking the button "Run" its not doing anything


can anybody please explain how to plot in it using python i tried example

x=[5,7,9,3,1,8,12] y=[3,7,6,1,7,11,8] plot(x,y)

after clicking the button "Run" its not doing anything


Make it interface with Python and Matlab on my local machine and export to .ps and I'll give you some money.

See jStat for one javascript statistical library that is similar to what is offered in R and Matlab: http://www.jstat.org/

And Formula.js has javascript versions of all the Excel functions: http://stoic.com/formula/


Legal | privacy