Changes for page Widget TimeSeries
Last modified by ldomide on 2023/05/23 14:34
From version 16.1
edited by rominabaila
on 2022/04/12 13:13
on 2022/04/12 13:13
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 (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 2 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,29 +1,51 @@ 1 +Source code: [[https:~~/~~/github.com/the-virtual-brain/tvb-widgets>>url:https://github.com/the-virtual-brain/tvb-widgets]] 2 + 3 +This is part of a Pypi release: [[https:~~/~~/pypi.org/project/tvb-widgets/>>url:https://pypi.org/project/tvb-widgets/]] 4 + 5 +//**tvb-widgets**// is also already installed in the official image released for EBRAINS lab, where you can test it directly. 6 + 1 1 == Purpose == 2 2 3 -It is a Jupyter widget intended for the visualization of brain signals represented as time series.9 +It is a Jupyter Widget intended for the visualization of brain signals represented as time series. 4 4 11 +== Backends == 5 5 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 + 6 6 == Inputs == 7 7 8 - It supports time series inputsoftwotypes:25 +Time series can be given as inputs in two forms: 9 9 10 10 * TVB TimeSeries datatype 11 11 * Numpy arrays 12 12 13 -Th ewidget supports 2-, 3-, and 4-dimensionalarrays. In all three cases, there is a fixed shape that the TimeSeries widget expects:30 +This widget supports 2D, 3D, and 4D arrays. In all three cases, there is a fixed shape that the TimeSeries widget expects: 14 14 15 15 * for **2D**: (no_timepoints, no_channels) 16 16 * for **3D**: (no_timepoints, state_variable/mode, no_channels) 17 17 * for **4D**: (no_timepoints, state_variable, no_channels, mode) 18 18 19 -~* Note that the TVB TimeSeries datatype is always 4D and already has the expected shape. 36 +~* Note that the TVB TimeSeries datatype is always 4D and already has the expected shape. 20 20 21 21 == Requirements and installation == 22 22 23 -Before installing the tvb-widgets library containing the TimeSeries widget, the following python libraries and Jupyter Notebook extensions should be installed: 24 24 41 +Before installing the tvb-widgets library containing the TimeSeries widget, the following python libraries and Jupyter extensions should be installed: 42 + 25 25 * **Libraries:** 26 -** [[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 27 27 * ((( 28 28 **Extensions:** 29 29 ... ... @@ -32,6 +32,8 @@ 32 32 jupyter labextension install @jupyter-widgets/jupyterlab-manager 33 33 34 34 jupyter labextension install jupyter-matplotlib 57 + 58 +jupyter labextension install jupyterlab-plotly 35 35 ))) 36 36 ))) 37 37 ... ... @@ -42,7 +42,6 @@ 42 42 pip install tvb-widgets 43 43 ))) 44 44 45 - 46 46 == API usage == 47 47 48 48 First, the correct matplotlib backend must be set, which enables the interaction with the TimeSeries widget, by running the following command: ... ... @@ -52,29 +52,26 @@ 52 52 %matplotlib widget 53 53 ))) 54 54 55 - TimeSerieswidget(fromthe tvb-widgetsAPI)and thedisplayfunctionshould be imported:78 +Then, simply import the **plot_timeseries** method, which gives you access to the TS widget: 56 56 57 57 (% class="box" %) 58 58 ((( 59 -from tvbwidgets.api import TimeSeriesWidget 60 -from IPython.core.display_functions import display 82 +from tvbwidgets.api import plot_timeseries 61 61 ))) 62 62 63 -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): 64 64 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 + 65 65 (% class="box" %) 66 66 ((( 67 -tsw = TimeSeriesWidget() 68 -tsw.add_datatype(tsr) 90 +backend = 'plotly' # change to 'matplotlib' to see the other TS widget 91 + 92 +plot_timeseries(data=tsr, backend=backend) 69 69 ))) 70 70 71 - 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. 72 72 73 -(% class="box" %) 74 -((( 75 -display(tsw.get_widget()) 76 -))) 77 77 78 78 {{html}} 79 -<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> 80 80 {{/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