Changes for page Widget TimeSeries
Last modified by ldomide on 2023/05/23 14:34
From version 24.1
edited by ldomide
on 2022/05/24 10:40
on 2022/05/24 10:40
Change comment:
There is no comment for this version
To version 34.1
edited by rominabaila
on 2023/05/15 11:24
on 2023/05/15 11:24
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Attachments (0 modified, 2 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. ldomide1 +XWiki.rominabaila - Content
-
... ... @@ -1,11 +1,25 @@ 1 1 Source code: [[https:~~/~~/github.com/the-virtual-brain/tvb-widgets>>url:https://github.com/the-virtual-brain/tvb-widgets]] 2 2 3 - Immediate testing: [[https:~~/~~/lab.ch.ebrains.eu/hub/user-redirect/lab/tree/shared/TVB%20Widgets/REPO/tvb-widgets/notebooks/TimeSeriesTVB.ipynb>>https://lab.ch.ebrains.eu/hub/user-redirect/lab/tree/shared/TVB%20Widgets/REPO/tvb-widgets/notebooks/TimeSeriesTVB.ipynb]] or here: [[https:~~/~~/lab.ch.ebrains.eu/hub/user-redirect/lab/tree/shared/TVB%20Widgets/REPO/tvb-widgets/notebooks/TimeSeriesArray.ipynb>>https://lab.ch.ebrains.eu/hub/user-redirect/lab/tree/shared/TVB%20Widgets/REPO/tvb-widgets/notebooks/TimeSeriesArray.ipynb]]3 +This is part of a Pypi release: [[https:~~/~~/pypi.org/project/tvb-widgets/>>url:https://pypi.org/project/tvb-widgets/]] 4 4 5 +//**tvb-widgets**// is also already installed in the official image released for EBRAINS lab, where you can test it directly. 6 + 5 5 == Purpose == 6 6 7 7 It is a Jupyter Widget intended for the visualization of brain signals represented as time series. 8 8 11 +== Backends == 12 + 13 +Starting with //**tvb-widgets 1.5.0**, //the TS widget comes in 2 forms, corresponding to the 2 different libraries (we called them backends) used for plotting: **matplotlib **and **plotly**. The matplotlib backend, build on top of the **mne** library, offers more advanced scientifical features, while the plotly backend has a more appealing look and moves faster when talking about the basic interactions. 14 + 15 +Below you can see the TS widget with each backend option (first one using the matplotlib backend, the second one using the plotly backend). 16 + 17 +(% style="text-align:center" %) 18 +[[image:matplotlib.png]] 19 + 20 +(% style="text-align:center" %) 21 +[[image:plotly.png]] 22 + 9 9 == Inputs == 10 10 11 11 Time series can be given as inputs in two forms: ... ... @@ -23,11 +23,15 @@ 23 23 24 24 == Requirements and installation == 25 25 40 + 26 26 Before installing the tvb-widgets library containing the TimeSeries widget, the following python libraries and Jupyter extensions should be installed: 27 27 28 28 * **Libraries:** 29 -** [[mne>>https://mne.tools/0.24/install/index.html]] version 0.24 30 -** [[ipympl>>https://github.com/matplotlib/ipympl#installation]] 44 +** [[mne>>https://mne.tools/stable/index.html]] >= 1.0 45 +** [[matplotlib>>https://matplotlib.org/3.5.0/index.html]] 46 +** [[plotly>>https://plotly.com/python/]] == 5.14.0 47 +** [[ipywidgets>>https://ipywidgets.readthedocs.io/en/7.x/]] == 7.7.2 48 +** [[ipympl>>https://github.com/matplotlib/ipympl#installation]] >= 0.8.5 31 31 * ((( 32 32 **Extensions:** 33 33 ... ... @@ -36,6 +36,8 @@ 36 36 jupyter labextension install @jupyter-widgets/jupyterlab-manager 37 37 38 38 jupyter labextension install jupyter-matplotlib 57 + 58 +jupyter labextension install jupyterlab-plotly 39 39 ))) 40 40 ))) 41 41 ... ... @@ -55,29 +55,26 @@ 55 55 %matplotlib widget 56 56 ))) 57 57 58 - TimeSeriesWidget**(frometvb-widgetsAPI)and the**//display//**functionshould be imported:78 +Then, simply import the **plot_timeseries** method, which gives you access to the TS widget: 59 59 60 60 (% class="box" %) 61 61 ((( 62 -from tvbwidgets.api import TimeSeriesWidget 63 -from IPython.core.display_functions import display 82 +from tvbwidgets.api import plot_timeseries 64 64 ))) 65 65 66 -Assuming that the user has already created or imported a valid input, this is how the widget can be initialized and how an input can be assigned to it, using the //**add_datatype** //method (example below assumes that **//tsr// **is a TVB TimeSeries datatype): 67 67 86 +Assuming that the user has already created or imported a valid input, this is how the widget can be initialized and displayed (example below assumes that **tsr **is a TVB TimeSeries datatype): 87 + 68 68 (% class="box" %) 69 69 ((( 70 -tsw = TimeSeriesWidget() 71 -tsw.add_datatype(tsr) 90 +backend = 'plotly' # change to 'matplotlib' to see the other TS widget 91 + 92 +plot_timeseries(data=tsr, backend=backend) 72 72 ))) 73 73 74 - Finally,todisplayandinteractwith the TimeSerieswidget,the**//get_widget//**////methodis usedinsidethe//**display **//function:95 +After running the code from above into a Jupyter cell, you should see the TS widget corresponding to the backend you selected. 75 75 76 -(% class="box" %) 77 -((( 78 -display(tsw) 79 -))) 80 80 81 81 {{html}} 82 -<iframe src="https:// drive.google.com/file/d/1g4ryY1VIFMUD14Mb6Dq_KVb0b2_XU4VX/preview"width="840"height="480" allow="autoplay"></iframe>99 +<iframe width="840" height="480" src="https://www.youtube.com/embed/VmueiXMxbVk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> 83 83 {{/html}}
- matplotlib.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.rominabaila - Size
-
... ... @@ -1,0 +1,1 @@ 1 +184.9 KB - Content
- plotly.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.rominabaila - Size
-
... ... @@ -1,0 +1,1 @@ 1 +351.7 KB - Content