Plot Diagrams and Sheets

Diagrams

multitrialsdiagram

A single diagram plot component to show timeseries combined with a list of variables for an easy selection of single or multiple 1 dimensonal data series. This feature rich component allows to explore data saved in arbitrary file formats like .c3d or .d3d without any specific configuration. New file formats are easy to plug into the Nimue platform. 

The diagram component can be integrated in Nimue platform applications or can be used as standalone application. Features like crosshair, gray band for showing normal data, mean and std visible as contour and translucent faces and lots more is available. With the Glue component a cross hair can be synchronized with the time axis parallel to a video or a 3d stick figure.

NimuePlot

Sheets

Based on the Diagram Plot Component a Plot Sheet Component can show diagrams in rows and columns of a table. A special XML-file defines the count of diagrams, descriptions and the variables which are shown. Very complex definitions are possible to show different sets of normal data behind the curves, to show markers e.g. an upright line at the position of heel strike in the case of a gait analysis sheet or to compare different groups of patients.

If the sheet is not fixed for an application, there is a graphical userinterface for designing the sheet, without any knowlage of the underlaying XML description.

sheetMean

In the cas of a gait sheet there is additional functionality available: An "export mean/std" button exports all strides and mean and std for the selected strides to the projects output folder as a .d3d file. This file can be used as input for determination of an inter-subject mean and std normal data to show as gray bars behind the curves.

Example XML Configuration fragment

<?xml version="1.0" encoding="iso-8859-1" ?> 
<?DOCTYPE Sheet PUBLIC "-//Nimue//DTD Sheet Def 1.0//EN" "sheetdef_1.0.dtd"?>

<Sheet name="FullBodyKinamtikPIGCloneAngles">  
<Pages>    

<!-- upper extremity angles -->    
<Page name="upper extremity angles" rows="4" columns="3">  
      
<!-- Head -->        
<Diagram name="HeadTilt"                   
column="0"                   
row="0"                   
unit="deg"                   
diagramDescriptionDown="post"                   
diagramDescriptionUp="ant"                   
plane="s"                   
diagramType="xt"                   
diagramTitle="Kopf Kippung (proj)">               

<Label name="RHeadAnteRetroProjAngle"                    
component="0"                    
side="right"/>               
<Label name="LHeadAnteRetroProjAngle"                    
component="0"                    
side="left"/>        
</Diagram>        
<Diagram name="HeadObliquity"           
column="1"           
row="0"           
unit="deg"           
diagramDescriptionDown="gegenS"           
diagramDescriptionUp="gleicheS"           
plane="f"           
diagramType="xt"           
diagramTitle="Kopf Schiefstand (proj)">           
...
</Page>
</Pages>
</Sheet>
 

Pages of diagrams

<Sheet name="">
<Pages>
<Page rows="" columns="">
<Diagram name="" .../>
</Page>
</Pages>
</Sheet>
Attributes of the <Diagram> element:

Attribute name Default Description Requeired
name
  name of the element used to identifiy the element Yes
comment
  No
column
    Yes
row
    Yes
xunit
  x-axis unit name No
yunit
y-axis unit name No
diagramDescriptionDown
    No
diagramDescriptionUp
  No
diagramDescriptionLeft
No
diagramDescriptionRight
No
plane
s = sagital, f=frontal, t=transversal
typically a shortcut for the plane s|f|t.
The letter is printed in the diagram title after the ":"
No
diagramType
XT XT|XY|XYZ (XYZ is not implemented yet) No
diagramTitle
  Text line printed above the diagram followed by " :" and the side given with the attribute "plane". No

Data 

Each diagram can plot one or more timeseries. For each diagram a minimum of  one  <Label>-element is needed, e.g.:
<Label name="RHeadAnteRetroProjAngle"                     
component="0"                    
side="right"/>
If the timeseries are not of the math type double the attribute "component" allows to define, which component should be plotted. The side of the timeserie can be defined by the corresponding attribute.

Attribute name Default Description Required
name
Name of the timeserie as used in the data files. Yes
component
x
x|y|z
If the math type of the timeseries is multidimensional, e.g. 3d vector, 3xd matrx, quaternion, ... an integer number starting with 0 defines which of the components should be plotted.
No
xComponent
not set x|y|z
component attribute corresponding to the referenced xLabel
No
yComponent
not set x|y|z
component attribute corresponding to the referenced yLabel
No
zComponent
not set x|y|z
component attribute corresponding to the referenced zLabel
No
side
Side not set, which is interpreted most as "both". left|right|both No
label
not set Name of the timeserie as used in data files which includes all the needed dimensions. If not set, the value of the name attribute is used instead. No
xLabel
not set For multidimensional plots as alternative to the label or name attribute, if the timeseries are saved as one-dimensional trajectories. No
yLabel
not set For multidimensional plots as alternative to the label or name attribute, if the timeseries are saved as one-dimensional trajectories. No
zLabel
not set For multidimensional plots as alternative to the label or name attribute, if the timeseries are saved as one-dimensional trajectories. No

If the attributes xLabel, yLabel, zLabel are used, the attribute "component" is ignored. Instead the attributes xComponent, yComponent and zComponent are used.

Data Groups

<Sheet>
<Groups>
<DefaultGroup name="" leftColor="" rightColor="" normData="">
...
</DefaultGroup>
<Group name="" leftColor="" rightColor="" normData="">
<identification>
<PropertyGroup name="">
<Property key="" value=""/>
...
</PropertyGroup>
</identification>
</Group>
</Groups>
</Sheet>
Attributes of the <Group> and <DefaultGroup> elements:
name Description Required
name
leftColor
rightColor
normData

Normal Data

Without a specific configuration for each <Label>-element child of a <Diagram>-element in the normal data file is searched for a data set with the name name. E.g. for gait data only one gray band for left and right side should be shown. For this a specific normal data configuration is needed. Have a look at the following example:
<Diagram name="ABC">
...
<Norm name="NORMPelvisAngles"
        component="0"/>
</Diagram>
It is assumed that the normal data file includes a timeserie with the name NORMPelvisAngles with mean and standard deviation. In the unusal cases where mean and standard deviation has different label names the following syntax with additional attributes is possible. But this is not recommended.
<Norm name="NORMPelvisAngles"
       component="0"
mean="NORMPelvicTilt"
       std="NORMStdPelvicTilt"/>
Attribute name Description Required
name
Name of the timeserie. If there are no optional attributes "mean" and "std" this is also the name of the timeserie searched in the normal data file, including mean and standard deviation. Yes
component
If the math type of the timeseries is multidimensional, e.g. 3d vector, 3xd matrx, quaternion, ... an integer number starting with 0 defines which of the components should be plotted. No
mean
For the unusal case that there are saved seperate timeseries for mean and standard deviation. This defines the name of the timeserie for the mean.
(not recommended)
No
std
For the unusal case that there are saved seperate timeseries for mean and standard deviation. This defines the name of the timeserie for the standard deviation.
(not recommended)
No