Matt Sundquist0:12
Realized at a conference of this nature, I wonder if as an indulgence to me, if you have a laptop, if you wouldn't mind closing it. It's kind of eerie to look out and just see screens lighting onto people's faces and not make eye contact with anyone. Sorry. So today I'm going to talk about some of the ways that you can plot with pandas and with IPython. Feel free to ask questions as we're going. I'll leave some time at the end.
This project called Plotly. We have a number of APIs, most prominently our Python API for making plots directly from Python and from pandas. You can do maps and all manner of other plots and 3D plots. But I think that's less interesting than showing how people who are using it are actually using it in their Python workflow. So I'm going to show four different people's plots and how they're making them and what they're using them for, and how they're using Python and pandas. First is this mathematician and uses Plotly for some pretty cool plots that we'll look at. Third is a data scientist at Salesforce who makes some awesome 3D plots that we can look at. And fourth is a writer who writes for Wired named Rhett Allain, who writes about physics and also makes some pretty sweet plots. A lot of this is enabled because of IPython notebooks. So not going to go super deep into that one, but it's what most of the plots that we'll be looking at are made with.
Rendered with D3.js, which is the JavaScript library that Mike Bostock wrote for the New York Times. Once you call iplot, that's actually a function that wraps the plot inside of an iframe, which is one of the cool things about the notebooks is you can support iframes within them. So when we respond with a URL from a request, we just wrap it in an iframe function and then put it directly into the notebook. That's how you can get interactivity, and it handles datetimes. We can drag and toggle and move around. Jorge has hooked this up. He works for Thomson Reuters and uses this with some of the other... to productionize his workflow. Because from within his IPython notebook, he'll make plots and then be able to share just the plot and use it as a dashboard. So other folks can come in and edit the plot directly from either the notebook if they have their own IPython backend, or you can just take the plot and bring it into a GUI. From within the GUI, we have styling options, and you can set your own templates and defaults. The whole thing runs like Google Docs in that you can just share, add... to reproduce it, or the JSON object, or just call an image. The way that they use it there, you can just embed it and then put it into HTML elsewhere as an iframe to embed it inside of dashboards or reports. It's pretty cool because he has hooked up a lot of different chart types to a lot of different aspects of what you do with pandas plotting, and also with matplotlib for the our map plot lib figure converter. You can go through and see all of these different plot types that you can plot from pandas. A lot of this he just pushed out in the past like two weeks.
Scatters, bubbles, matrices, sub plotting, and shapes. That's our first look at how someone is using pandas with IPython. It's a pretty cool example that I enjoy. This is the second one. This is an example that shows the new default color maps for matplotlib, which is pretty sleek. Here we have it as a default inside... streamlines. And then this is the one that I think is really fun. This is 3D, so we can zoom and then you can see the little tech that goes with it. It's pretty cool. She emailed this to me like two or three days ago. It's pretty sweet because she's made some really awesome plots all again using the same color scales. It's pretty fun because you can apply all of these different color scales from and then save them, and all of it is just part of your IPython notebook. It lets you do all of this from just within the notebook. Then we have an offline version of Plotly that you can run directly inside of your... we've essentially gone with the GitHub approach on it. You can do unlimited free public plotting on our cloud, and then we do an enterprise distribution for people who want to host a server or just an offline version that just runs inside IPython or MATLAB or RStudio.