Changes for page Widget TimeSeries

Last modified by ldomide on 2023/05/23 14:34

From version 14.1
edited by rominabaila
on 2022/04/12 10:05
Change comment: There is no comment for this version
To version 33.1
edited by rominabaila
on 2023/05/15 11:06
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,30 +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 inputs of two types:
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 -The widget supports 2-, 3-, and 4-dimensional arrays. 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 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 -
22 22  == Requirements and installation ==
23 23  
24 -Before installing the tvb-widgets library containing the TimeSeries widget, the following python libraries and  Jupyter Notebook extensions should be installed:
25 25  
41 +Before installing the tvb-widgets library containing the TimeSeries widget, the following python libraries and Jupyter extensions should be installed:
42 +
26 26  * **Libraries:**
27 -** [[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
28 28  * (((
29 29  **Extensions:**
30 30  
... ... @@ -33,6 +33,8 @@
33 33  jupyter labextension install @jupyter-widgets/jupyterlab-manager
34 34  
35 35  jupyter labextension install jupyter-matplotlib
57 +
58 +jupyter labextension install jupyterlab-plotly
36 36  )))
37 37  )))
38 38  
... ... @@ -43,7 +43,6 @@
43 43  pip install tvb-widgets
44 44  )))
45 45  
46 -
47 47  == API usage ==
48 48  
49 49  First, the correct matplotlib backend must be set, which enables the interaction with the TimeSeries widget, by running the following command:
... ... @@ -53,7 +53,7 @@
53 53  %matplotlib widget
54 54  )))
55 55  
56 - Then, the TimeSeries widget (from the tvb-widgets API) and the display function should be imported:
78 + Then, the **TimeSeriesWidget** (from the tvb-widgets API) and the **//display//** function should be imported:
57 57  
58 58  (% class="box" %)
59 59  (((
... ... @@ -73,5 +73,9 @@
73 73  
74 74  (% class="box" %)
75 75  (((
76 -display(tsw.get_widget())
98 +display(tsw)
77 77  )))
100 +
101 +{{html}}
102 +<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>
103 +{{/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
Public

TVB Widgets