diplotocus 0.4.0__tar.gz → 0.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. {diplotocus-0.4.0 → diplotocus-0.5.0}/PKG-INFO +1 -1
  2. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/requirements.txt +2 -1
  3. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/source/conf.py +4 -2
  4. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/source/index.rst +2 -1
  5. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/source/notebooks/animations.ipynb +118 -42
  6. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/source/notebooks/easings.ipynb +36 -36
  7. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/source/notebooks/plot_objects.ipynb +11 -0
  8. diplotocus-0.5.0/src/diplotocus/_version.py +1 -0
  9. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus/animations.py +758 -100
  10. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus/core.py +41 -17
  11. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus.egg-info/PKG-INFO +1 -1
  12. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus.egg-info/SOURCES.txt +0 -47
  13. diplotocus-0.4.0/docs/source/_static/anim_draw.mp4 +0 -0
  14. diplotocus-0.4.0/docs/source/_static/anim_morph.mp4 +0 -0
  15. diplotocus-0.4.0/docs/source/_static/anim_rotate.mp4 +0 -0
  16. diplotocus-0.4.0/docs/source/_static/anim_scale.mp4 +0 -0
  17. diplotocus-0.4.0/docs/source/_static/anim_sequence.mp4 +0 -0
  18. diplotocus-0.4.0/docs/source/_static/anim_translate.mp4 +0 -0
  19. diplotocus-0.4.0/docs/source/_static/anim_tween.mp4 +0 -0
  20. diplotocus-0.4.0/docs/source/_static/axis_alpha.mp4 +0 -0
  21. diplotocus-0.4.0/docs/source/_static/axis_limits.mp4 +0 -0
  22. diplotocus-0.4.0/docs/source/_static/axis_move.mp4 +0 -0
  23. diplotocus-0.4.0/docs/source/_static/axis_zoom.mp4 +0 -0
  24. diplotocus-0.4.0/docs/source/_static/cubicBezier.mp4 +0 -0
  25. diplotocus-0.4.0/docs/source/_static/customEase.mp4 +0 -0
  26. diplotocus-0.4.0/docs/source/_static/easeInBack.mp4 +0 -0
  27. diplotocus-0.4.0/docs/source/_static/easeInBounce.mp4 +0 -0
  28. diplotocus-0.4.0/docs/source/_static/easeInCirc.mp4 +0 -0
  29. diplotocus-0.4.0/docs/source/_static/easeInCubic.mp4 +0 -0
  30. diplotocus-0.4.0/docs/source/_static/easeInElastic.mp4 +0 -0
  31. diplotocus-0.4.0/docs/source/_static/easeInExpo.mp4 +0 -0
  32. diplotocus-0.4.0/docs/source/_static/easeInOutBack.mp4 +0 -0
  33. diplotocus-0.4.0/docs/source/_static/easeInOutBounce.mp4 +0 -0
  34. diplotocus-0.4.0/docs/source/_static/easeInOutCirc.mp4 +0 -0
  35. diplotocus-0.4.0/docs/source/_static/easeInOutCubic.mp4 +0 -0
  36. diplotocus-0.4.0/docs/source/_static/easeInOutElastic.mp4 +0 -0
  37. diplotocus-0.4.0/docs/source/_static/easeInOutExpo.mp4 +0 -0
  38. diplotocus-0.4.0/docs/source/_static/easeInOutQuad.mp4 +0 -0
  39. diplotocus-0.4.0/docs/source/_static/easeInOutQuart.mp4 +0 -0
  40. diplotocus-0.4.0/docs/source/_static/easeInOutQuint.mp4 +0 -0
  41. diplotocus-0.4.0/docs/source/_static/easeInOutSine.mp4 +0 -0
  42. diplotocus-0.4.0/docs/source/_static/easeInQuad.mp4 +0 -0
  43. diplotocus-0.4.0/docs/source/_static/easeInQuart.mp4 +0 -0
  44. diplotocus-0.4.0/docs/source/_static/easeInQuint.mp4 +0 -0
  45. diplotocus-0.4.0/docs/source/_static/easeInSine.mp4 +0 -0
  46. diplotocus-0.4.0/docs/source/_static/easeLinear.mp4 +0 -0
  47. diplotocus-0.4.0/docs/source/_static/easeOutBack.mp4 +0 -0
  48. diplotocus-0.4.0/docs/source/_static/easeOutBounce.mp4 +0 -0
  49. diplotocus-0.4.0/docs/source/_static/easeOutCirc.mp4 +0 -0
  50. diplotocus-0.4.0/docs/source/_static/easeOutCubic.mp4 +0 -0
  51. diplotocus-0.4.0/docs/source/_static/easeOutElastic.mp4 +0 -0
  52. diplotocus-0.4.0/docs/source/_static/easeOutExpo.mp4 +0 -0
  53. diplotocus-0.4.0/docs/source/_static/easeOutQuad.mp4 +0 -0
  54. diplotocus-0.4.0/docs/source/_static/easeOutQuart.mp4 +0 -0
  55. diplotocus-0.4.0/docs/source/_static/easeOutQuint.mp4 +0 -0
  56. diplotocus-0.4.0/docs/source/_static/easeOutSine.mp4 +0 -0
  57. diplotocus-0.4.0/docs/source/_static/fig_height_ratio.mp4 +0 -0
  58. diplotocus-0.4.0/docs/source/_static/fig_width_ratio.mp4 +0 -0
  59. diplotocus-0.4.0/docs/source/notebooks/logo.ipynb +0 -1259
  60. diplotocus-0.4.0/src/diplotocus/_version.py +0 -1
  61. {diplotocus-0.4.0 → diplotocus-0.5.0}/.gitattributes +0 -0
  62. {diplotocus-0.4.0 → diplotocus-0.5.0}/.gitignore +0 -0
  63. {diplotocus-0.4.0 → diplotocus-0.5.0}/.readthedocs.yaml +0 -0
  64. {diplotocus-0.4.0 → diplotocus-0.5.0}/LICENSE +0 -0
  65. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/Makefile +0 -0
  66. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/_static/force-light.css +0 -0
  67. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/_static/force-light.js +0 -0
  68. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/make.bat +0 -0
  69. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/source/_static/Web_GUI.png +0 -0
  70. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/source/_static/button.svg +0 -0
  71. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/source/_static/demo.mp4 +0 -0
  72. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/source/_static/favicon.ico +0 -0
  73. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/source/_static/force-light.css +0 -0
  74. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/source/_static/force-light.js +0 -0
  75. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/source/_static/logo.mp4 +0 -0
  76. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/source/_static/logo.svg +0 -0
  77. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/source/api/core.rst +0 -0
  78. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/source/api/index.rst +0 -0
  79. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/source/notebooks/GUI.ipynb +0 -0
  80. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/source/notebooks/index.ipynb +0 -0
  81. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/source/notebooks/installation.ipynb +0 -0
  82. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/source/notebooks/quick-start.ipynb +0 -0
  83. {diplotocus-0.4.0 → diplotocus-0.5.0}/docs/source/notebooks/timeline.ipynb +0 -0
  84. {diplotocus-0.4.0 → diplotocus-0.5.0}/logo.png +0 -0
  85. {diplotocus-0.4.0 → diplotocus-0.5.0}/pyproject.toml +0 -0
  86. {diplotocus-0.4.0 → diplotocus-0.5.0}/readme.md +0 -0
  87. {diplotocus-0.4.0 → diplotocus-0.5.0}/setup.cfg +0 -0
  88. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus/GUI/GUI.html +0 -0
  89. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus/GUI/__init__.py +0 -0
  90. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus/GUI/app.js +0 -0
  91. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus/GUI/server.py +0 -0
  92. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus/GUI/src/bg.png +0 -0
  93. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus/GUI/src/btn/btn_bg_Draw.png +0 -0
  94. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus/GUI/src/btn/btn_bg_Morph.png +0 -0
  95. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus/GUI/src/btn/btn_bg_Rotate.png +0 -0
  96. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus/GUI/src/btn/btn_bg_Scale.png +0 -0
  97. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus/GUI/src/btn/btn_bg_Sequence.png +0 -0
  98. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus/GUI/src/btn/btn_bg_Translate.png +0 -0
  99. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus/GUI/src/btn/btn_bg_Tween.png +0 -0
  100. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus/GUI/src/btn/btn_bg_default.png +0 -0
  101. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus/GUI/src/favicon.ico +0 -0
  102. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus/GUI/src/logo_bg.png +0 -0
  103. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus/GUI/style.css +0 -0
  104. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus/__init__.py +0 -0
  105. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus/easings.py +0 -0
  106. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus.egg-info/dependency_links.txt +0 -0
  107. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus.egg-info/requires.txt +0 -0
  108. {diplotocus-0.4.0 → diplotocus-0.5.0}/src/diplotocus.egg-info/top_level.txt +0 -0
  109. {diplotocus-0.4.0 → diplotocus-0.5.0}/tests/test.py +0 -0
  110. {diplotocus-0.4.0 → diplotocus-0.5.0}/tests/test10.py +0 -0
  111. {diplotocus-0.4.0 → diplotocus-0.5.0}/tests/test2.py +0 -0
  112. {diplotocus-0.4.0 → diplotocus-0.5.0}/tests/test3.py +0 -0
  113. {diplotocus-0.4.0 → diplotocus-0.5.0}/tests/test4.py +0 -0
  114. {diplotocus-0.4.0 → diplotocus-0.5.0}/tests/test5.py +0 -0
  115. {diplotocus-0.4.0 → diplotocus-0.5.0}/tests/test6.py +0 -0
  116. {diplotocus-0.4.0 → diplotocus-0.5.0}/tests/test7.py +0 -0
  117. {diplotocus-0.4.0 → diplotocus-0.5.0}/tests/test8.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: diplotocus
3
- Version: 0.4.0
3
+ Version: 0.5.0
4
4
  Summary: A python package to generate animations of matplotlib objects.
5
5
  Author-email: Tristan Boin <tristan.boin@obspm.fr>
6
6
  License-Expression: MIT
@@ -5,4 +5,5 @@ sphinx-autodoc-typehints
5
5
  matplotlib
6
6
  numpy
7
7
  svgpath2mpl
8
- sphinx-copybutton
8
+ sphinx-copybutton
9
+ sphinx_design
@@ -52,7 +52,8 @@ extensions = [
52
52
  "sphinx.ext.linkcode",
53
53
  "sphinx.ext.intersphinx",
54
54
  "sphinx_autodoc_typehints",
55
- "sphinx_copybutton"
55
+ "sphinx_copybutton",
56
+ "sphinx_design"
56
57
  ]
57
58
 
58
59
  intersphinx_mapping = {
@@ -65,7 +66,7 @@ myst_all_links_external = True
65
66
  templates_path = ['_templates']
66
67
  # exclude specific generated/unused notebooks to avoid spurious warnings
67
68
  exclude_patterns = [
68
- 'notebooks/logo.ipynb','notebooks/index.ipynb'
69
+ 'notebooks/index.ipynb'
69
70
  ]
70
71
 
71
72
  html_favicon = "_static/favicon.ico"
@@ -93,6 +94,7 @@ html_js_files = [
93
94
  myst_enable_extensions = [
94
95
  "html_image",
95
96
  "dollarmath",
97
+ "colon_fence"
96
98
  ]
97
99
 
98
100
  nb_execution_allow_errors = True
@@ -62,6 +62,7 @@ Here's a quick example of the syntax of diplotocus:
62
62
  :target: notebooks/GUI.html
63
63
 
64
64
  Get started by :doc:`Installing Diplotocus <notebooks/installation>`, and follow the :doc:`Quick-Start guide <notebooks/quick-start>`.
65
+ For examples, see the :doc:`Examples <notebooks/examples>` page.
65
66
 
66
67
  .. toctree::
67
68
  :maxdepth: 2
@@ -71,7 +72,7 @@ Get started by :doc:`Installing Diplotocus <notebooks/installation>`, and follow
71
72
  notebooks/quick-start
72
73
 
73
74
  .. toctree::
74
- :maxdepth: 3
75
+ :maxdepth: 2
75
76
  :caption: Library reference
76
77
 
77
78
  notebooks/timeline
@@ -60,7 +60,7 @@
60
60
  {
61
61
  "data": {
62
62
  "text/markdown": [
63
- "Saved video ../_static/anim_translate.mp4"
63
+ "Saved video ../_static/animations/anim_translate.mp4"
64
64
  ],
65
65
  "text/plain": [
66
66
  "<IPython.core.display.Markdown object>"
@@ -74,7 +74,7 @@
74
74
  "text/html": [
75
75
  "\n",
76
76
  " <video width=\"640\" height=\"360\" autoplay loop muted playsinline>\n",
77
- " <source src=\"../_static/anim_translate.mp4?randId=449\" type=\"video/mp4\">\n",
77
+ " <source src=\"../_static/animations/anim_translate.mp4?randId=449\" type=\"video/mp4\">\n",
78
78
  " </video>\n",
79
79
  " "
80
80
  ],
@@ -98,7 +98,7 @@
98
98
  "p.translate(start_pos=(0,0),end_pos=(1,1),duration=60)\n",
99
99
  "\n",
100
100
  "tl.animate(p)\n",
101
- "tl.save_video('../_static/anim_translate.mp4')"
101
+ "tl.save_video('../_static/animations/anim_translate.mp4')"
102
102
  ]
103
103
  },
104
104
  {
@@ -137,7 +137,7 @@
137
137
  {
138
138
  "data": {
139
139
  "text/markdown": [
140
- "Saved video ../_static/anim_rotate.mp4"
140
+ "Saved video ../_static/animations/anim_rotate.mp4"
141
141
  ],
142
142
  "text/plain": [
143
143
  "<IPython.core.display.Markdown object>"
@@ -151,7 +151,7 @@
151
151
  "text/html": [
152
152
  "\n",
153
153
  " <video width=\"640\" height=\"360\" autoplay loop muted playsinline>\n",
154
- " <source src=\"../_static/anim_rotate.mp4?randId=1017\" type=\"video/mp4\">\n",
154
+ " <source src=\"../_static/animations/anim_rotate.mp4?randId=1017\" type=\"video/mp4\">\n",
155
155
  " </video>\n",
156
156
  " "
157
157
  ],
@@ -175,7 +175,7 @@
175
175
  "p.rotate(start_angle=20,end_angle=110,duration=60)\n",
176
176
  "\n",
177
177
  "tl.animate(p)\n",
178
- "tl.save_video('../_static/anim_rotate.mp4')"
178
+ "tl.save_video('../_static/animations/anim_rotate.mp4')"
179
179
  ]
180
180
  },
181
181
  {
@@ -214,7 +214,7 @@
214
214
  {
215
215
  "data": {
216
216
  "text/markdown": [
217
- "Saved video ../_static/anim_scale.mp4"
217
+ "Saved video ../_static/animations/anim_scale.mp4"
218
218
  ],
219
219
  "text/plain": [
220
220
  "<IPython.core.display.Markdown object>"
@@ -228,7 +228,7 @@
228
228
  "text/html": [
229
229
  "\n",
230
230
  " <video width=\"640\" height=\"360\" autoplay loop muted playsinline>\n",
231
- " <source src=\"../_static/anim_scale.mp4?randId=2110\" type=\"video/mp4\">\n",
231
+ " <source src=\"../_static/animations/anim_scale.mp4?randId=2110\" type=\"video/mp4\">\n",
232
232
  " </video>\n",
233
233
  " "
234
234
  ],
@@ -252,7 +252,7 @@
252
252
  "p.scale(start_scale=(0,1),end_scale=(2,0),duration=60)\n",
253
253
  "\n",
254
254
  "tl.animate(p)\n",
255
- "tl.save_video('../_static/anim_scale.mp4')"
255
+ "tl.save_video('../_static/animations/anim_scale.mp4')"
256
256
  ]
257
257
  },
258
258
  {
@@ -303,7 +303,7 @@
303
303
  {
304
304
  "data": {
305
305
  "text/markdown": [
306
- "Saved video ../_static/anim_tween.mp4"
306
+ "Saved video ../_static/animations/anim_tween.mp4"
307
307
  ],
308
308
  "text/plain": [
309
309
  "<IPython.core.display.Markdown object>"
@@ -317,7 +317,7 @@
317
317
  "text/html": [
318
318
  "\n",
319
319
  " <video width=\"640\" height=\"360\" autoplay loop muted playsinline>\n",
320
- " <source src=\"../_static/anim_tween.mp4?randId=9568\" type=\"video/mp4\">\n",
320
+ " <source src=\"../_static/animations/anim_tween.mp4?randId=9568\" type=\"video/mp4\">\n",
321
321
  " </video>\n",
322
322
  " "
323
323
  ],
@@ -341,7 +341,7 @@
341
341
  "p.tween(property='c',start='red',end='green',duration=60)\n",
342
342
  "\n",
343
343
  "tl.animate(p)\n",
344
- "tl.save_video('../_static/anim_tween.mp4')"
344
+ "tl.save_video('../_static/animations/anim_tween.mp4')"
345
345
  ]
346
346
  },
347
347
  {
@@ -380,7 +380,7 @@
380
380
  {
381
381
  "data": {
382
382
  "text/markdown": [
383
- "Saved video ../_static/anim_math.mp4"
383
+ "Saved video ../_static/animations/anim_math.mp4"
384
384
  ],
385
385
  "text/plain": [
386
386
  "<IPython.core.display.Markdown object>"
@@ -394,7 +394,7 @@
394
394
  "text/html": [
395
395
  "\n",
396
396
  " <video width=\"640\" height=\"360\" autoplay loop muted playsinline>\n",
397
- " <source src=\"../_static/anim_math.mp4?randId=508\" type=\"video/mp4\">\n",
397
+ " <source src=\"../_static/animations/anim_math.mp4?randId=508\" type=\"video/mp4\">\n",
398
398
  " </video>\n",
399
399
  " "
400
400
  ],
@@ -419,7 +419,7 @@
419
419
  "p.math(property='lw',func=lambda t:np.cos(t*6*np.pi)*20+3,duration=60)\n",
420
420
  "\n",
421
421
  "tl.animate(p)\n",
422
- "tl.save_video('../_static/anim_math.mp4')"
422
+ "tl.save_video('../_static/animations/anim_math.mp4')"
423
423
  ]
424
424
  },
425
425
  {
@@ -458,7 +458,7 @@
458
458
  {
459
459
  "data": {
460
460
  "text/markdown": [
461
- "Saved video ../_static/anim_morph.mp4"
461
+ "Saved video ../_static/animations/anim_morph.mp4"
462
462
  ],
463
463
  "text/plain": [
464
464
  "<IPython.core.display.Markdown object>"
@@ -472,7 +472,7 @@
472
472
  "text/html": [
473
473
  "\n",
474
474
  " <video width=\"640\" height=\"360\" autoplay loop muted playsinline>\n",
475
- " <source src=\"../_static/anim_morph.mp4?randId=1825\" type=\"video/mp4\">\n",
475
+ " <source src=\"../_static/animations/anim_morph.mp4?randId=1825\" type=\"video/mp4\">\n",
476
476
  " </video>\n",
477
477
  " "
478
478
  ],
@@ -500,7 +500,7 @@
500
500
  "p.morph(new_x=x2,new_y=y2,duration=60)\n",
501
501
  "\n",
502
502
  "tl.animate(p)\n",
503
- "tl.save_video('../_static/anim_morph.mp4')"
503
+ "tl.save_video('../_static/animations/anim_morph.mp4')"
504
504
  ]
505
505
  },
506
506
  {
@@ -539,7 +539,7 @@
539
539
  {
540
540
  "data": {
541
541
  "text/markdown": [
542
- "Saved video ../_static/anim_draw.mp4"
542
+ "Saved video ../_static/animations/anim_draw.mp4"
543
543
  ],
544
544
  "text/plain": [
545
545
  "<IPython.core.display.Markdown object>"
@@ -553,7 +553,7 @@
553
553
  "text/html": [
554
554
  "\n",
555
555
  " <video width=\"640\" height=\"360\" autoplay loop muted playsinline>\n",
556
- " <source src=\"../_static/anim_draw.mp4?randId=6085\" type=\"video/mp4\">\n",
556
+ " <source src=\"../_static/animations/anim_draw.mp4?randId=6085\" type=\"video/mp4\">\n",
557
557
  " </video>\n",
558
558
  " "
559
559
  ],
@@ -578,7 +578,7 @@
578
578
  "p.draw(duration=60)\n",
579
579
  "\n",
580
580
  "tl.animate(p)\n",
581
- "tl.save_video('../_static/anim_draw.mp4')"
581
+ "tl.save_video('../_static/animations/anim_draw.mp4')"
582
582
  ]
583
583
  },
584
584
  {
@@ -617,7 +617,7 @@
617
617
  {
618
618
  "data": {
619
619
  "text/markdown": [
620
- "Saved video ../_static/anim_sequence.mp4"
620
+ "Saved video ../_static/animations/anim_sequence.mp4"
621
621
  ],
622
622
  "text/plain": [
623
623
  "<IPython.core.display.Markdown object>"
@@ -631,7 +631,7 @@
631
631
  "text/html": [
632
632
  "\n",
633
633
  " <video width=\"640\" height=\"360\" autoplay loop muted playsinline>\n",
634
- " <source src=\"../_static/anim_sequence.mp4?randId=1390\" type=\"video/mp4\">\n",
634
+ " <source src=\"../_static/animations/anim_sequence.mp4?randId=1390\" type=\"video/mp4\">\n",
635
635
  " </video>\n",
636
636
  " "
637
637
  ],
@@ -658,7 +658,7 @@
658
658
  "p.sequence(duration=50)\n",
659
659
  "\n",
660
660
  "tl.animate(p)\n",
661
- "tl.save_video('../_static/anim_sequence.mp4')"
661
+ "tl.save_video('../_static/animations/anim_sequence.mp4')"
662
662
  ]
663
663
  },
664
664
  {
@@ -699,7 +699,7 @@
699
699
  {
700
700
  "data": {
701
701
  "text/markdown": [
702
- "Saved video ../_static/axis_zoom.mp4"
702
+ "Saved video ../_static/animations/axis_zoom.mp4"
703
703
  ],
704
704
  "text/plain": [
705
705
  "<IPython.core.display.Markdown object>"
@@ -713,7 +713,7 @@
713
713
  "text/html": [
714
714
  "\n",
715
715
  " <video width=\"640\" height=\"360\" autoplay loop muted playsinline>\n",
716
- " <source src=\"../_static/axis_zoom.mp4?randId=9285\" type=\"video/mp4\">\n",
716
+ " <source src=\"../_static/animations/axis_zoom.mp4?randId=9285\" type=\"video/mp4\">\n",
717
717
  " </video>\n",
718
718
  " "
719
719
  ],
@@ -737,7 +737,7 @@
737
737
  "a = dpl.axis_zoom(zoom=2,duration=60)\n",
738
738
  "\n",
739
739
  "tl.animate(a)\n",
740
- "tl.save_video('../_static/axis_zoom.mp4')"
740
+ "tl.save_video('../_static/animations/axis_zoom.mp4')"
741
741
  ]
742
742
  },
743
743
  {
@@ -776,7 +776,7 @@
776
776
  {
777
777
  "data": {
778
778
  "text/markdown": [
779
- "Saved video ../_static/axis_limits.mp4"
779
+ "Saved video ../_static/animations/axis_limits.mp4"
780
780
  ],
781
781
  "text/plain": [
782
782
  "<IPython.core.display.Markdown object>"
@@ -790,7 +790,7 @@
790
790
  "text/html": [
791
791
  "\n",
792
792
  " <video width=\"640\" height=\"360\" autoplay loop muted playsinline>\n",
793
- " <source src=\"../_static/axis_limits.mp4?randId=2059\" type=\"video/mp4\">\n",
793
+ " <source src=\"../_static/animations/axis_limits.mp4?randId=2059\" type=\"video/mp4\">\n",
794
794
  " </video>\n",
795
795
  " "
796
796
  ],
@@ -814,7 +814,7 @@
814
814
  "a = dpl.axis_limits(xlim=(-5,5),ylim=(-1,1),duration=60)\n",
815
815
  "\n",
816
816
  "tl.animate(a)\n",
817
- "tl.save_video('../_static/axis_limits.mp4')"
817
+ "tl.save_video('../_static/animations/axis_limits.mp4')"
818
818
  ]
819
819
  },
820
820
  {
@@ -853,7 +853,7 @@
853
853
  {
854
854
  "data": {
855
855
  "text/markdown": [
856
- "Saved video ../_static/axis_move.mp4"
856
+ "Saved video ../_static/animations/axis_move.mp4"
857
857
  ],
858
858
  "text/plain": [
859
859
  "<IPython.core.display.Markdown object>"
@@ -867,7 +867,7 @@
867
867
  "text/html": [
868
868
  "\n",
869
869
  " <video width=\"640\" height=\"360\" autoplay loop muted playsinline>\n",
870
- " <source src=\"../_static/axis_move.mp4?randId=7288\" type=\"video/mp4\">\n",
870
+ " <source src=\"../_static/animations/axis_move.mp4?randId=7288\" type=\"video/mp4\">\n",
871
871
  " </video>\n",
872
872
  " "
873
873
  ],
@@ -891,7 +891,83 @@
891
891
  "a = dpl.axis_move(end_pos=(1,1),duration=60)\n",
892
892
  "\n",
893
893
  "tl.animate(a)\n",
894
- "tl.save_video('../_static/axis_move.mp4')"
894
+ "tl.save_video('../_static/animations/axis_move.mp4')"
895
+ ]
896
+ },
897
+ {
898
+ "cell_type": "markdown",
899
+ "id": "fc9ac910",
900
+ "metadata": {},
901
+ "source": [
902
+ "### Axis track\n",
903
+ "\n",
904
+ "```{eval-rst}\n",
905
+ ".. automethod:: diplotocus.animations.axis_track\n",
906
+ " :noindex:\n",
907
+ "```"
908
+ ]
909
+ },
910
+ {
911
+ "cell_type": "code",
912
+ "execution_count": 2,
913
+ "id": "15283849",
914
+ "metadata": {},
915
+ "outputs": [
916
+ {
917
+ "data": {
918
+ "application/vnd.jupyter.widget-view+json": {
919
+ "model_id": "698754ccec1b4218be341de8f233a3fc",
920
+ "version_major": 2,
921
+ "version_minor": 0
922
+ },
923
+ "text/plain": [
924
+ " 0%| | 0/60 [00:00<?, ?it/s]"
925
+ ]
926
+ },
927
+ "metadata": {},
928
+ "output_type": "display_data"
929
+ },
930
+ {
931
+ "data": {
932
+ "text/markdown": [
933
+ "Saved video ../_static/animations/axis_track.mp4"
934
+ ],
935
+ "text/plain": [
936
+ "<IPython.core.display.Markdown object>"
937
+ ]
938
+ },
939
+ "metadata": {},
940
+ "output_type": "display_data"
941
+ },
942
+ {
943
+ "data": {
944
+ "text/html": [
945
+ "\n",
946
+ " <video width=\"640\" height=\"360\" autoplay loop muted playsinline>\n",
947
+ " <source src=\"../_static/animations/axis_track.mp4?randId=6295\" type=\"video/mp4\">\n",
948
+ " </video>\n",
949
+ " "
950
+ ],
951
+ "text/plain": [
952
+ "<IPython.core.display.HTML object>"
953
+ ]
954
+ },
955
+ "metadata": {},
956
+ "output_type": "display_data"
957
+ }
958
+ ],
959
+ "source": [
960
+ "import diplotocus as dpl\n",
961
+ "\n",
962
+ "tl = dpl.Timeline(xlim=(-2,2),ylim=(-2,2))\n",
963
+ "tl.main_axis.grid()\n",
964
+ "\n",
965
+ "s = dpl.scatter(x=1,y=0)\n",
966
+ "s.rotate(start_angle=0,end_angle=360,center=(0,0),duration=60)\n",
967
+ "a = dpl.axis_track(obj=s,duration=60)\n",
968
+ "\n",
969
+ "tl.animate((s,a))\n",
970
+ "tl.save_video('../_static/animations/axis_track.mp4')"
895
971
  ]
896
972
  },
897
973
  {
@@ -930,7 +1006,7 @@
930
1006
  {
931
1007
  "data": {
932
1008
  "text/markdown": [
933
- "Saved video ../_static/axis_alpha.mp4"
1009
+ "Saved video ../_static/animations/axis_alpha.mp4"
934
1010
  ],
935
1011
  "text/plain": [
936
1012
  "<IPython.core.display.Markdown object>"
@@ -944,7 +1020,7 @@
944
1020
  "text/html": [
945
1021
  "\n",
946
1022
  " <video width=\"640\" height=\"360\" autoplay loop muted playsinline>\n",
947
- " <source src=\"../_static/axis_alpha.mp4?randId=3022\" type=\"video/mp4\">\n",
1023
+ " <source src=\"../_static/animations/axis_alpha.mp4?randId=3022\" type=\"video/mp4\">\n",
948
1024
  " </video>\n",
949
1025
  " "
950
1026
  ],
@@ -968,7 +1044,7 @@
968
1044
  "a = dpl.axis_alpha(start_alpha=0,end_alpha=1,duration=50)\n",
969
1045
  "\n",
970
1046
  "tl.animate(a)\n",
971
- "tl.save_video('../_static/axis_alpha.mp4')"
1047
+ "tl.save_video('../_static/animations/axis_alpha.mp4')"
972
1048
  ]
973
1049
  },
974
1050
  {
@@ -1007,7 +1083,7 @@
1007
1083
  {
1008
1084
  "data": {
1009
1085
  "text/markdown": [
1010
- "Saved video ../_static/fig_width_ratio.mp4"
1086
+ "Saved video ../_static/animations/fig_width_ratio.mp4"
1011
1087
  ],
1012
1088
  "text/plain": [
1013
1089
  "<IPython.core.display.Markdown object>"
@@ -1021,7 +1097,7 @@
1021
1097
  "text/html": [
1022
1098
  "\n",
1023
1099
  " <video width=\"640\" height=\"360\" autoplay loop muted playsinline>\n",
1024
- " <source src=\"../_static/fig_width_ratio.mp4?randId=4844\" type=\"video/mp4\">\n",
1100
+ " <source src=\"../_static/animations/fig_width_ratio.mp4?randId=4844\" type=\"video/mp4\">\n",
1025
1101
  " </video>\n",
1026
1102
  " "
1027
1103
  ],
@@ -1048,7 +1124,7 @@
1048
1124
  "a = dpl.fig_width_ratio(start_widths=(1,0),end_widths=(0,1),duration=60)\n",
1049
1125
  "\n",
1050
1126
  "tl.animate(a)\n",
1051
- "tl.save_video('../_static/fig_width_ratio.mp4')"
1127
+ "tl.save_video('../_static/animations/fig_width_ratio.mp4')"
1052
1128
  ]
1053
1129
  },
1054
1130
  {
@@ -1087,7 +1163,7 @@
1087
1163
  {
1088
1164
  "data": {
1089
1165
  "text/markdown": [
1090
- "Saved video ../_static/fig_height_ratio.mp4"
1166
+ "Saved video ../_static/animations/fig_height_ratio.mp4"
1091
1167
  ],
1092
1168
  "text/plain": [
1093
1169
  "<IPython.core.display.Markdown object>"
@@ -1101,7 +1177,7 @@
1101
1177
  "text/html": [
1102
1178
  "\n",
1103
1179
  " <video width=\"640\" height=\"360\" autoplay loop muted playsinline>\n",
1104
- " <source src=\"../_static/fig_height_ratio.mp4?randId=767\" type=\"video/mp4\">\n",
1180
+ " <source src=\"../_static/animations/fig_height_ratio.mp4?randId=767\" type=\"video/mp4\">\n",
1105
1181
  " </video>\n",
1106
1182
  " "
1107
1183
  ],
@@ -1128,7 +1204,7 @@
1128
1204
  "a = dpl.fig_height_ratio(start_heights=(1,0),end_heights=(0,1),duration=60)\n",
1129
1205
  "\n",
1130
1206
  "tl.animate(a)\n",
1131
- "tl.save_video('../_static/fig_height_ratio.mp4')"
1207
+ "tl.save_video('../_static/animations/fig_height_ratio.mp4')"
1132
1208
  ]
1133
1209
  }
1134
1210
  ],