 Okay, and I'm a matplotlib developer, but actually my job is I'm a physicist and I do hard work testing all day, so I take data from cameras, I'm pushing to the database and then getting the data outside, and finally doing some visualization of that data. How many people here have ever used matplotlib? You see? Not as in Gaios, sorry. One thing that you notice with matplotlib pretty soon when you start playing with it is it gets messy when you get a lot of data. For example, this is my typical case. I get tons of data and I get 10 tests out of the database and now I see them. Okay, I want the yellow one. Damn, I have to go back to my script, start playing to remove the other data, the other ones, and just to show the relevant data. And I say, hey, what do I have to do? I start opening the code of matplotlib, you get to the backend. Okay, I can call my own backend, but it's pretty messy. So that's not the real way to do it. What I finally did was contacted the matplotlib guys and say, hey, I have tried this several times and why don't we add something to be able to play with the buttons here? I have the little buttons here. I want to be able to add another button or add at least a simple callback from my plot. I don't necessarily have to redo a full backend. If you have a lot of things to add, the buttons, scroll down menus and that kind of things, yes, go ahead, do your full backend. But if you want to do something simple, what do we do? Now, what I did is I created a couple of, for example, here, I said, I'm going to make a plugin system. I have two kind of tools. One is a tool base, as you can see. And this is simply very, very stupid tool that just prints something on the message box. Let's say I have it, I created the tool and I added to my plot. Now, if I press C, you see the message appears. Pretty simple. Now, I want a button for that message. I have a simple button here. Okay, there you go. It's working. Now, in my example here, I have a problem with visibility. I have too many lines. I want to be able to total them easily. Let's say here and we just added to the tool manager. Now, I just create callbacks for the buttons, for the zero to six or seven. And then I can just turn it on and off without actually modifying matplotlib. That's what I wanted. And if we add a little bit of dewy stuff, for example, color manipulation, I can add, let's say we just remove a couple of things, because the typical thing, I need to print this plot. And that blue is not going to be very friendly with the black and white printer. So, I just print darker, okay, and it goes. So, what I created here is just a simple backend to play with the toolbar. That's simple enough. It works very well. It's actually included in the last matplotlib release in the 1.5. It's already there, so you can start playing with it. It only works on, at this moment, it only works on TK and GTK3, because we are waiting for what I'm going to show you next to be merged into matplotlib to expand this tool manager to all the backends that we have. So, it's going to be fairly easy for you to play with it and add little buttons for your goal button to show, to start grabbing the signals. Now, let's make a little bit here. Map 27, that's the name of this guy. And here, let's say, the map 27, it's a little bit different. Here, I'm not going to show you new tools. I'm just going to show you how we divided the figure manager that was a monolithic thing into little device, little things, normal things, like a toolbar, a window, and a window. Why do you do that? It's pretty easy to do. Every language do it. Yes, but matplotlib has to deal with, we have how many backends? I think like five. TK, GTK, GTK3, WX, Cocoa, Web, I think six or seven different backends. Supporting everything that you do to every backend is huge work. So, we try to simplify things for people. We are not trying to replicate what a backend do. We are not trying to replicate a GUI. We are just providing you access to a GUI to do generic things that is 90% of the cases, use cases that you have. For example, here I extract the manager and the figure manager. I create a new toolbar at the top. Here we don't see it because I didn't add anything yet. And just for demo purposes, I'm going to remove some buttons from the lower toolbar and put it on the top toolbar. And let's see if it works. Yeah, it works. You see? Now I have three buttons here and four buttons down. Why do I do that? I have no idea, but it's something that you could do. Maybe you have too many buttons, so you need more. And another thing that you can do is we will add a new window to add some extra tools because one button to connect to the database and extract your last sample data. Another button to plug it. Another button to call your boss saying you are late. And we add a little toolbar to that window. We added vertical. And we are going to add some tools. We are playing with the same tools that we already have in the toolbar just for demo purposes. Of course, you can add new tools like we did just before in the other demo. And we will show the window. And let's see. There you go. You have your two little buttons, your two little two bars, one on the side or the other. And everything works fine together. So now you can start playing, rearranging your little plot without having to actually get your hands dirty with mat blood leave down the gut. So it's just for you to make your life easier. One little thing I don't know if it will work. Let me see. Yeah. Just for you, for those who didn't know, this new toolbar also includes the scroll zoom and pan. So it's pretty scrolling. You just go up inside and outside. It's not a big deal. Everybody does it, but it wasn't there before. So I'd hope it helps you. And if you have any questions, I'm here for you.