|
3 | 3 | {
|
4 | 4 | "cell_type": "code",
|
5 | 5 | "execution_count": null,
|
6 |
| - "metadata": { |
7 |
| - "collapsed": false |
8 |
| - }, |
| 6 | + "metadata": {}, |
9 | 7 | "outputs": [],
|
10 | 8 | "source": [
|
11 | 9 | "from imp import reload"
|
|
23 | 21 | {
|
24 | 22 | "cell_type": "code",
|
25 | 23 | "execution_count": null,
|
26 |
| - "metadata": { |
27 |
| - "collapsed": false |
28 |
| - }, |
| 24 | + "metadata": {}, |
29 | 25 | "outputs": [],
|
30 | 26 | "source": [
|
31 | 27 | "import matplotlib\n",
|
|
49 | 45 | {
|
50 | 46 | "cell_type": "code",
|
51 | 47 | "execution_count": null,
|
52 |
| - "metadata": { |
53 |
| - "collapsed": false |
54 |
| - }, |
| 48 | + "metadata": {}, |
55 | 49 | "outputs": [],
|
56 | 50 | "source": [
|
57 | 51 | "import matplotlib.backends.backend_webagg_core\n",
|
|
78 | 72 | {
|
79 | 73 | "cell_type": "code",
|
80 | 74 | "execution_count": null,
|
81 |
| - "metadata": { |
82 |
| - "collapsed": false |
83 |
| - }, |
| 75 | + "metadata": {}, |
84 | 76 | "outputs": [],
|
85 | 77 | "source": [
|
86 | 78 | "plt.plot([3, 2, 1])\n",
|
|
99 | 91 | {
|
100 | 92 | "cell_type": "code",
|
101 | 93 | "execution_count": null,
|
102 |
| - "metadata": { |
103 |
| - "collapsed": false |
104 |
| - }, |
| 94 | + "metadata": {}, |
105 | 95 | "outputs": [],
|
106 | 96 | "source": [
|
107 | 97 | "print(matplotlib.backends.backend_nbagg.connection_info())"
|
|
119 | 109 | {
|
120 | 110 | "cell_type": "code",
|
121 | 111 | "execution_count": null,
|
122 |
| - "metadata": { |
123 |
| - "collapsed": false |
124 |
| - }, |
| 112 | + "metadata": {}, |
125 | 113 | "outputs": [],
|
126 | 114 | "source": [
|
127 |
| - "plt.close(fig1)" |
| 115 | + "plt.close(fig1)\n", |
| 116 | + "plt.close('all')" |
128 | 117 | ]
|
129 | 118 | },
|
130 | 119 | {
|
|
140 | 129 | {
|
141 | 130 | "cell_type": "code",
|
142 | 131 | "execution_count": null,
|
143 |
| - "metadata": { |
144 |
| - "collapsed": false |
145 |
| - }, |
| 132 | + "metadata": {}, |
146 | 133 | "outputs": [],
|
147 | 134 | "source": [
|
148 | 135 | "plt.plot(range(10))"
|
|
160 | 147 | {
|
161 | 148 | "cell_type": "code",
|
162 | 149 | "execution_count": null,
|
163 |
| - "metadata": { |
164 |
| - "collapsed": false |
165 |
| - }, |
| 150 | + "metadata": {}, |
166 | 151 | "outputs": [],
|
167 | 152 | "source": [
|
168 | 153 | "print(matplotlib.backends.backend_nbagg.connection_info())"
|
|
180 | 165 | {
|
181 | 166 | "cell_type": "code",
|
182 | 167 | "execution_count": null,
|
183 |
| - "metadata": { |
184 |
| - "collapsed": false |
185 |
| - }, |
| 168 | + "metadata": {}, |
186 | 169 | "outputs": [],
|
187 | 170 | "source": [
|
188 | 171 | "plt.show()\n",
|
|
203 | 186 | {
|
204 | 187 | "cell_type": "code",
|
205 | 188 | "execution_count": null,
|
206 |
| - "metadata": { |
207 |
| - "collapsed": false |
208 |
| - }, |
| 189 | + "metadata": {}, |
209 | 190 | "outputs": [],
|
210 | 191 | "source": [
|
211 | 192 | "plt.interactive(True)\n",
|
|
223 | 204 | {
|
224 | 205 | "cell_type": "code",
|
225 | 206 | "execution_count": null,
|
226 |
| - "metadata": { |
227 |
| - "collapsed": false |
228 |
| - }, |
| 207 | + "metadata": {}, |
229 | 208 | "outputs": [],
|
230 | 209 | "source": [
|
231 | 210 | "plt.plot(range(3))"
|
|
241 | 220 | {
|
242 | 221 | "cell_type": "code",
|
243 | 222 | "execution_count": null,
|
244 |
| - "metadata": { |
245 |
| - "collapsed": false |
246 |
| - }, |
| 223 | + "metadata": {}, |
247 | 224 | "outputs": [],
|
248 | 225 | "source": [
|
249 | 226 | "print(matplotlib.backends.backend_nbagg.connection_info())"
|
|
259 | 236 | {
|
260 | 237 | "cell_type": "code",
|
261 | 238 | "execution_count": null,
|
262 |
| - "metadata": { |
263 |
| - "collapsed": false |
264 |
| - }, |
| 239 | + "metadata": {}, |
265 | 240 | "outputs": [],
|
266 | 241 | "source": [
|
267 | 242 | "plt.interactive(False)"
|
|
279 | 254 | {
|
280 | 255 | "cell_type": "code",
|
281 | 256 | "execution_count": null,
|
282 |
| - "metadata": { |
283 |
| - "collapsed": false |
284 |
| - }, |
| 257 | + "metadata": {}, |
285 | 258 | "outputs": [],
|
286 | 259 | "source": [
|
287 | 260 | "plt.gcf().canvas.manager.reshow()"
|
|
310 | 283 | {
|
311 | 284 | "cell_type": "code",
|
312 | 285 | "execution_count": null,
|
313 |
| - "metadata": { |
314 |
| - "collapsed": false |
315 |
| - }, |
| 286 | + "metadata": {}, |
316 | 287 | "outputs": [],
|
317 | 288 | "source": [
|
318 | 289 | "fig = plt.figure()\n",
|
|
335 | 306 | {
|
336 | 307 | "cell_type": "code",
|
337 | 308 | "execution_count": null,
|
338 |
| - "metadata": { |
339 |
| - "collapsed": false |
340 |
| - }, |
| 309 | + "metadata": {}, |
341 | 310 | "outputs": [],
|
342 | 311 | "source": [
|
343 | 312 | "from matplotlib.backends.backend_nbagg import new_figure_manager,show\n",
|
|
361 | 330 | {
|
362 | 331 | "cell_type": "code",
|
363 | 332 | "execution_count": null,
|
364 |
| - "metadata": { |
365 |
| - "collapsed": false |
366 |
| - }, |
| 333 | + "metadata": {}, |
367 | 334 | "outputs": [],
|
368 | 335 | "source": [
|
369 | 336 | "import matplotlib.animation as animation\n",
|
|
384 | 351 | " return line,\n",
|
385 | 352 | "\n",
|
386 | 353 | "ani = animation.FuncAnimation(fig, animate, np.arange(1, 200), init_func=init,\n",
|
387 |
| - " interval=32., blit=True)\n", |
| 354 | + " interval=100., blit=True)\n", |
388 | 355 | "plt.show()"
|
389 | 356 | ]
|
390 | 357 | },
|
|
404 | 371 | {
|
405 | 372 | "cell_type": "code",
|
406 | 373 | "execution_count": null,
|
407 |
| - "metadata": { |
408 |
| - "collapsed": false |
409 |
| - }, |
| 374 | + "metadata": {}, |
410 | 375 | "outputs": [],
|
411 | 376 | "source": [
|
412 | 377 | "import matplotlib\n",
|
|
430 | 395 | {
|
431 | 396 | "cell_type": "code",
|
432 | 397 | "execution_count": null,
|
433 |
| - "metadata": { |
434 |
| - "collapsed": false |
435 |
| - }, |
| 398 | + "metadata": {}, |
436 | 399 | "outputs": [],
|
437 | 400 | "source": [
|
438 | 401 | "import itertools\n",
|
|
477 | 440 | {
|
478 | 441 | "cell_type": "code",
|
479 | 442 | "execution_count": null,
|
480 |
| - "metadata": { |
481 |
| - "collapsed": false |
482 |
| - }, |
| 443 | + "metadata": {}, |
483 | 444 | "outputs": [],
|
484 | 445 | "source": [
|
485 | 446 | "import time\n",
|
|
506 | 467 | {
|
507 | 468 | "cell_type": "code",
|
508 | 469 | "execution_count": null,
|
509 |
| - "metadata": { |
510 |
| - "collapsed": false |
511 |
| - }, |
| 470 | + "metadata": {}, |
512 | 471 | "outputs": [],
|
513 | 472 | "source": [
|
514 | 473 | "fig, ax = plt.subplots()\n",
|
|
531 | 490 | {
|
532 | 491 | "cell_type": "code",
|
533 | 492 | "execution_count": null,
|
534 |
| - "metadata": { |
535 |
| - "collapsed": false |
536 |
| - }, |
| 493 | + "metadata": {}, |
537 | 494 | "outputs": [],
|
538 | 495 | "source": [
|
539 | 496 | "fig, ax = plt.subplots()\n",
|
|
549 | 506 | {
|
550 | 507 | "cell_type": "code",
|
551 | 508 | "execution_count": null,
|
552 |
| - "metadata": { |
553 |
| - "collapsed": false |
554 |
| - }, |
| 509 | + "metadata": {}, |
555 | 510 | "outputs": [],
|
556 | 511 | "source": [
|
557 | 512 | "fig, ax = plt.subplots()\n",
|
|
569 | 524 | "cell_type": "markdown",
|
570 | 525 | "metadata": {},
|
571 | 526 | "source": [
|
572 |
| - "### UAT17 - stopping figure when removed from DOM\n", |
| 527 | + "### UAT 18 - stopping figure when removed from DOM\n", |
573 | 528 | "\n",
|
574 | 529 | "When the div that contains from the figure is removed from the DOM the figure should shut down it's comm, and if the python-side figure has no more active comms, it should destroy the figure. Repeatedly running the cell below should always have the same figure number"
|
575 | 530 | ]
|
576 | 531 | },
|
577 | 532 | {
|
578 | 533 | "cell_type": "code",
|
579 | 534 | "execution_count": null,
|
580 |
| - "metadata": { |
581 |
| - "collapsed": false |
582 |
| - }, |
| 535 | + "metadata": {}, |
583 | 536 | "outputs": [],
|
584 | 537 | "source": [
|
585 | 538 | "fig, ax = plt.subplots()\n",
|
|
597 | 550 | {
|
598 | 551 | "cell_type": "code",
|
599 | 552 | "execution_count": null,
|
600 |
| - "metadata": { |
601 |
| - "collapsed": false |
602 |
| - }, |
| 553 | + "metadata": {}, |
603 | 554 | "outputs": [],
|
604 | 555 | "source": [
|
605 | 556 | "fig.canvas.manager.reshow()"
|
606 | 557 | ]
|
607 | 558 | },
|
608 | 559 | {
|
609 |
| - "cell_type": "code", |
610 |
| - "execution_count": null, |
| 560 | + "cell_type": "markdown", |
611 | 561 | "metadata": {
|
612 | 562 | "collapsed": true
|
613 | 563 | },
|
| 564 | + "source": [ |
| 565 | + "### UAT 19 - Blitting\n", |
| 566 | + "\n", |
| 567 | + "Clicking on the figure should plot a green horizontal line moving up the axes." |
| 568 | + ] |
| 569 | + }, |
| 570 | + { |
| 571 | + "cell_type": "code", |
| 572 | + "execution_count": null, |
| 573 | + "metadata": {}, |
| 574 | + "outputs": [], |
| 575 | + "source": [ |
| 576 | + "import itertools\n", |
| 577 | + "\n", |
| 578 | + "cnt = itertools.count()\n", |
| 579 | + "bg = None\n", |
| 580 | + "\n", |
| 581 | + "def onclick_handle(event):\n", |
| 582 | + " \"\"\"Should draw elevating green line on each mouse click\"\"\"\n", |
| 583 | + " global bg\n", |
| 584 | + " if bg is None:\n", |
| 585 | + " bg = ax.figure.canvas.copy_from_bbox(ax.bbox) \n", |
| 586 | + " ax.figure.canvas.restore_region(bg)\n", |
| 587 | + "\n", |
| 588 | + " cur_y = (next(cnt) % 10) * 0.1\n", |
| 589 | + " ln.set_ydata([cur_y, cur_y])\n", |
| 590 | + " ax.draw_artist(ln)\n", |
| 591 | + " ax.figure.canvas.blit(ax.bbox)\n", |
| 592 | + "\n", |
| 593 | + "\n", |
| 594 | + "fig, ax = plt.subplots()\n", |
| 595 | + "ax.plot([0, 1], [0, 1], 'r')\n", |
| 596 | + "ln, = ax.plot([0, 1], [0, 0], 'g', animated=True)\n", |
| 597 | + "plt.show()\n", |
| 598 | + "ax.figure.canvas.draw()\n", |
| 599 | + "\n", |
| 600 | + "ax.figure.canvas.mpl_connect('button_press_event', onclick_handle)" |
| 601 | + ] |
| 602 | + }, |
| 603 | + { |
| 604 | + "cell_type": "code", |
| 605 | + "execution_count": null, |
| 606 | + "metadata": {}, |
614 | 607 | "outputs": [],
|
615 | 608 | "source": []
|
616 | 609 | }
|
|
631 | 624 | "name": "python",
|
632 | 625 | "nbconvert_exporter": "python",
|
633 | 626 | "pygments_lexer": "ipython3",
|
634 |
| - "version": "3.4.3" |
| 627 | + "version": "3.8.5" |
635 | 628 | }
|
636 | 629 | },
|
637 | 630 | "nbformat": 4,
|
638 |
| - "nbformat_minor": 0 |
| 631 | + "nbformat_minor": 1 |
639 | 632 | }
|
0 commit comments