Plotly graphing API for Python, Matlab, R, and Arduino
plot.ly
plot.ly
We received extremely helpful feedback, and are grateful to everyone who commented and used the product. Hearing from readers and new users was exciting, helpful, and insightful. So, thanks very much.
The #1 request was an API to generate plotly graphs from desktop environments. In response to that feedback, we are launching a new service so you can now send data from Python, MATLAB, R, and Arduino to your plotly account. Calls made with the API will return a link with a graph of your data, i.e. something like this: https://plot.ly/~chris/421/. You can sign up through the API.
The graphs are interactive: click-drag to zoom, double-click to autoscale, shift-drag to pan, hover to view data points.
You can view the graphs inside plotly and style them with our GUI. For example, I sent data with the API to make this: http://plot.ly/~chris/554/ and then styled it inside plotly to create this: https://plot.ly/~chris/653/
HN: What do you think of the API? What else can we do to make Plotly a tool that you would realistically use every single day?
Frankly, i find myself baffled that you'd think Perl is not a scientific-computation language, given the existence of BioPerl, PDL, GD::Graph and many other widely-used tools that relate to your field.
If you'd agree to putting it on your API page, i'll happily do the needful and make a release to CPAN and port the examples you have there.
But, what if I want to run my own infrastructure?
We definitely support installing plotly on private servers -- there are certainly a lot of companies that won't let their data leave their building.
I notice it will require an always-on connection in order to transmit data back to your servers. Do you have any plans for making something slightly more modular which could deal with devices that can't always "phone home"? Or maybe that's on us makers -- we need to store the data to SD or something, then build routines that send data when connected.
Either way, using Plotly means your project has to have either an Ethernet shield or a Wifi module.
But there are many projects with those modules already integrated, and for them this looks like will be basically just a bolt-on of code.
Anyway, thanks for the feedback and definitely get in touch if you think of other ways plotly could interface with projects that your working on! chris[at]plot.ly
In fact, it'd be completely device-agnostic--it shouldn't matter if the device is an Arduino or a Propeller or a custom board as long as it can talk over serial.
I might be in the minority of users who tether, and it'd be pretty easy to roll my own solution using the Python API. Nevertheless, it'd sure be convenient.
Can you point me to some examples of how you've brought Plotly into your workflow? Do you generally send data via the API and style it manually, or do you do all the styling in code? How easy is it to grab plots from Plotly to be included in e.g. a PDF?
Personally, I prefer to style the plots with the GUI... it's so much easier and faster than re-running some styling script. Of course, some stylings are too cumbersome to do by hand. For example, I adjusted the opacity of every trace with code to make this plot: https://plot.ly/~cparmer2/302/, which was easier than manually selecting every trace in the GUI.
A couple workflow examples:
- last semester, I used plotly to share results with my advisor. It was much easier to send short-links of my simulation graphs than to export images and send them as an attachment. My advisor could update the styling and view the underlying data behind the graph and he only needed to open up his browser.
- Some R&D labs are interested in using plotly to centralize their data streams. They send data to plotly from their lab instruments (through the api) and share the graphs within plotly to all their team members (through a group feature in plotly)
Plotly graphs can be exported to SVG, EPS, PDF, and PNG, so it's pretty easy to include your graphs in a PDF.
Do you use MATLAB in a team environment?
You can view any linked graph (i.e. something like this: https://plot.ly/~jackp/683/) from within your plotly account by clicking the "View in Plotly" link in the bottom righthand corner.
I currently use RStudio server to do analysis from the RStudio IDE in my browser- while all the client-sensitive data and computation happens in a remote box. Allows me to play with graphs on my browser as well,.
It looks like Plotly's advantage is in sharing the plots easily.
The advantage of using it in a browser: it's not on my local machine! So if I run some godawful super-intensive script, my machine doesn't slow to a crawl. Also, I work with client sensitive data and we try not to hold any on our local laptops. It's really a nice solution. Now if only they supported multiple monitors...
Here is the repo/tutorial for plotting with vincent https://github.com/wrobstory/vincent
[Note that vincent works great if you are using pandas for your data analysis.]
Just curious, for what reasons would you prefer an offline version?