Link Analysis¶
The Link Analysis widget allows you to visually represent relationships in your data.
Link analysis focuses on networks and connections in a dataset, and by using a network of interconnected links and nodes, the Link Analysis widget graphically displays relationships which are hard to identify and analyze in raw data. Nodes and links play a pivotal role in building your link analysis visualization, to find out more information go to this page.
Depending on the type of dataset, different layouts can be used to display nodes and links in a chart. In Rulex Studio, the link analysis layouts available are:
In order to start working on a Link Analysis widget, users have to choose the desired layout and drag it onto the slide, then they can add attributes to start displaying data.
Rulex Studio gives you complete control over the layout and configuration of every single link analysis layout customization.
A Link Analysis widget is divided into different sections, each of them controlling a specific characteristic of the link analysis representation:
Link analysis input menu: located as a hamburger menu at the left or at the right of the link analysis, it controls the input definition and all the related options modifying how nodes and links are represented.
Link analysis layout menu: opened through the widget context menu, it contains all the graphical configurations which do not require any point or bar re-evaluation.
Link Analysis Dimensions¶
All the different layouts of the Link Analysis widget share two different dimensions:
Nodes: the objects or entities interconnected with each other. To start using any of available layouts in the Link Analysis widget group, users must drag a nominal attribute onto the Node Layout icon in the left-side input vertical menu.
Links: the lines that connect nodes in the chart and are the visual representation of a relationship. A link connects two nodes, if these nodes have a relationship. To draw links, you create relationship types that connect nodes based on common field values. To connect the previously defined nodes with a link, users need to drag two nominal attributes onto the Link Layout icon in the left-side input vertical menu, indicating the hierarchical relationship between nodes. In Rulex Studio the relationship between the link attributes is defined as parent and child.
Note
The attribute dragged onto the Node Layout icon and those used in the Link Layout icon can belong to two different datasets.
To move around in your Link Analysis widget, you can zoom in-out by pressing CTRL and moving the mouse wheel: if the mouse wheel movement goes upwards, a zoom in is performed, while if the mouse wheel movement does downwards, a zoom out is performed. Or you can press the Ctrl + Plus key to zoom in and Ctrl + Minus key to zoom out.
Once you have built your Link Analysis chart, clicking on nodes will highlight the corresponding parent node(s) in green and the corresponding child nodes in red.
The dimension options menus can be opened by right-clicking on the corresponding dimension button in the left input vertical menu.
Each one of the different dimension buttons opens a different dimension menu. Therefore, we are going to describe each of these menus in separate page: node option menu and link option menu.
Link Analysis Layout¶
Once the widget has been dragged onto the slide and the required attributes have been dragged on it, users can double-click its frame or use the widgets context menu to open the Layout options pane.
The Layout options pane is made of one section, the LAYOUT tab.
All the options available in the Layout options pane can be customized in parametric mode.
Users can find all the available options and the corresponding GOLD references in the table below.
To know more about GOLD, go to the corresponding page.
Subsection |
Option |
Description |
GOLD Ref |
---|---|---|---|
Layout options |
Background color |
It defines the background color of the Link Analysis widget. By clicking it, users can select Standard colors and generated color palettes, otherwise they can use the color picker or insert the color code, which can be: Hex, Rgb, Hsl, Hsv. The default color is white. |
|
Initial scale |
From this spin box, users can define the Link Analysis widget scaling when first opening the view. |
Link Analysis Schema¶
A link analysis plot is completely described through a JSON object composed by 4 different area:
input retaining the information about the linked attributes
options retaining all the graphical and functional options which requires a re-evaluation of the link analysis relations.
layout the rest of the graphical options which do not require a re-evaluation of the link analysis
data the link analysis output.
The whole JSON object is saved as a GOLD dictionary in the layout field of the Plot class.
The schema of the JSON object is presented in YAML format commented.
layout:
general:
backgroundColor: #sets the background color of the widget
initialScale: #sets the initial level of zoom of the figure
node:
fontWeight: #sets the font weight of the node label
fontStyle: #sets the font style of the node label
textDecoration: #sets the text decoration of the node label
vAlignment: #sets the vertical alignment of the node label
textAlign: #sets the horizontal alignment of the node label
fontFamily: #sets the font family of the node label
fontSize: #sets the font size of the node label
textPosition: #sets the position of the node label
textColor: #sets the color of the node label
haloPosition: # sets where to place the halo respectively at the node (inside/outside). Available when the node halo type is icon. the value of node halo corresponds to a list of length 4. The values in the list correspond respectively to the corners of the node shape in this order [TL, TR, BR, BL]
numberfontColor: #sets the node halos font color. Available when the node halo type is number. The value of node halo corresponds to a list of length 4. The values in the list correspond respectively to the corners of the node shape in this order [TL, TR, BR, BL]
numberfontFamily: #sets the node halos font family. Available when the node halo type is number. The value of node halo corresponds to a list of length 4. The values in the list correspond respectively to the corners of the node shape in this order [TL, TR, BR, BL]
numberfontSize: #sets the node halos font size. Available when the node halo type is number. The value of node halo corresponds to a list of length 4. The values in the list correspond respectively to the corners of the node shape in this order [TL, TR, BR, BL]
numberfontStyle: #sets the node halos font style. Available when the node halo type is number. The value of node halo corresponds to a list of length 4. The values in the list correspond respectively to the corners of the node shape in this order [TL, TR, BR, BL]
numberfontWeight: #sets the node halos font weight. Available when the node halo type is number. The value of node halo corresponds to a list of length 4. The values in the list correspond respectively to the corners of the node shape in this order [TL, TR, BR, BL]
numbertextDecoration: #sets the node halos text decoration. Available when the node halo type is number. The value of node halo corresponds to a list of length 4. The values in the list correspond respectively to the corners of the node shape in this order [TL, TR, BR, BL]
link:
fromArrow: #sets the shape of the starting arrow head of the link("None", "Standard", "Backward", "Triangle", "Boomerang", "OpenTriangle", "Circle")
toArrow: #sets the shape of the arrival arrow head of the link("None", "Standard", "Backward", "Triangle", "Boomerang", "OpenTriangle", "Circle")
routing: #sets whether the link's path tries to avoid other nodes ("Normal", "Orthogonal", "AvoidsNodes")
curve: #sets the way the path is generated from the route's points("Curve", "Straight", "JumpOver", "JumpGap")
haloPosition: # sets where to place the halo respectively at the link(Left/Right/Center). Available when the node halo type is icon. The value of link halo corresponds to a list of length 2. The values in the list correspond to the top and bottom of the link, respectively [top, bottom]
fontWeight: #sets the link halos font weight. Available when the node halo type is text. The value of link halo corresponds to a list of length 2. The values in the list correspond to the top and bottom of the link, respectively [top, bottom]
fontStyle: #sets the link halos font style. Available when the node halo type is text. The value of link halo corresponds to a list of length 2. The values in the list correspond to the top and bottom of the link, respectively [top, bottom]
textDecoration: #sets the link halos text decoration. Available when the node halo type is text. The value of link halo corresponds to a list of length 2. The values in the list correspond to the top and bottom of the link, respectively [top, bottom]
fontFamily: #sets the link halos font family. Available when the node halo type is text. The value of link halo corresponds to a list of length 2. The values in the list correspond to the top and bottom of the link, respectively [top, bottom]
fontSize: #sets the link halos font size. Available when the node halo type is text. The value of link halo corresponds to a list of length 2. The values in the list correspond to the top and bottom of the link, respectively [top, bottom]
textPosition: #sets the link halos text position. Available when the node halo type is text. The value of link halo corresponds to a list of length 2. The values in the list correspond to the top and bottom of the link, respectively [top, bottom]
textColor: #sets the link halos color. Available when the node halo type is text. The value of link halo corresponds to a list of length 2. The values in the list correspond to the top and bottom of the link, respectively [top, bottom]
input:
force: #list(max lenght 1) containing an object with the information about attribue that set the force when the type of the widget is "force-directed"
- table: #table of the attribute used
attr: #name of the attribute used
type: ##type of the attribute used(must be integer or continous when the subType is distance and must be part of the same table of the link attribute, firework and medoid allow continous, integer and nominal and must be part of the same table of the node attribute)
link: #list(max lenght 2) containing in the first position an object with all the information about the attribute that set the start of the link, in the second an object with all the info about where the link ends. The first value of the list is an object with the information of the attribute whose values set from which node value the link will start. The second value of the list is an object with the information of the attribute whose values set from which node value the link will end
- table: #table of the attribute used
attr: #name of the attribute used
type: #type of the attribute used(must be nominal, other types are not allowed)
- table: #table of the attribute used
attr: #name of the attribute used
type: #type of the attribute used(must be nominal, other types are not allowed)
subattr: #object that manages which attribute(of the same table of the links attributes) a specific link property is attached to
thickness: #sets the attribute name that manage the thickness of the links(the attribute must be integer/continous)
halo: #list(max lenght 2) that corresponds to the top and bottom of the links and sets the names of the attributes that will manage the halo property. (The attribute must be nominal when the halo type is icon otherwise when the halo is text it could be nominal/integer/continous)
color: #sets the attribute name that manage the color property of the links(the attribute must be nominal)
weight: #sets the attribute name that manage the weight of the links(the attribute must be integer/continous)
tooltip: #list that could contain as many attribute as you want of the same table of the attribute set in link(any attribute types are allowed). Each element of the list must contain the the table name and its attribute separated with an exclamation mark (ex. "table!attribute1")
node: #list(max lenght 1) containing an object with the information about the node whose values will be linked through the information contained in the list link. The first value of the list is an object with the information of the attribute whose values will be linked via the attributes values of the link list. (The attribute could be nominal/integer/continous)
- table: #table of the attribute used
attr: #name of the attribute used
type: #type of the attribute used(must be nominal, other types are not allowed)
subattr: #object that manages which attribute(of the same table of the node attributes) a specific node property is attached to
icon: #sets the attribute name that manage the icon property of the node(the attribute must be nominal)
shape: #sets the attribute name that manage the shape property of the node(the attribute must be nominal)
size: #sets the attribute name that manage the size of the node(the attribute must be integer/continous)
text: #sets the attribute name that manage the text property of the node(the attribute must be nominal)
halo: #list(max lenght 4) whose elements correspond to 4 corners of the node shape starting from top left to bottom left clockwise and sets the names of the attributes that will manage the halo property. (The attribute must be nominal when the halo type is icon otherwise when the halo is number it must be integer/continous)
color: #sets the attribute name that manage the color property of the node(the attribute must be nominal)
tooltip: #list that could contain as many attribute as you want of the same table of the attribute set in node(any attribute types are allowed). Each element of the list must contain the table name and its attribute separated with an exclamation mark (ex. "table!attribute1")
options:
layoutProperties:
layerSpacing: #sets the space between each layer. Only available for widget type equal to layered-digraph and tree
nodeSpacing: #sets the distance between child nodes. Only available for widget type equal to tree
columnSpacing: #sets the size of each column. Only available for widget type equal to layered-digraph
layeringOption: #sets which layering option is being used(LayerOptimalLinkLength/LayerLongestPathSource/LayerLongestPathSink). Only available for widget type equal to layered-digraph
direction: #sets the direction the graph grows towards when the type is layered-digraph("0", "90", "180", "270")that is equal to right, down, left, up. Sets whether the nodes are arranged clockwise or counterclockwise when the type is circular(Clockwise/Counterclockwise/BidirectionalLeft/BidirectionalRight) Only available for widget type equal to layered-digraph and circular
aggressiveOption: #sets which aggressive option is being used to look for link crossings.(AggressiveLess/AggressiveNone/AggressiveMore). Only available for widget type equal to layered-digraph
radius: #sets the horizontal radius of the elliptical arrangement. Only available for widget type equal to circular
aspectRatio: #sets the ratio of the arrangement's height to its width. Only available for widget type equal to circular
startAngle: #sets the angle (in degrees, clockwise from the positive side of the X axis) of the first element. Only available for widget type equal to circular
sweepAngle: #sets the absolute angle (in degrees) between the first and last node. Only available for widget type equal to circular
nodeDiameterFormula: #Specifies how the diameter of nodes will be calculated(Pythagorean/Circular). Only available for widget type equal to circular
arrangement: #sets how the nodes are spaced(ConstantSpacing/ConstantDistance/ConstantAngle/Packed). Only available for widget type equal to circular
sorting: #sets if and how the nodes are sorted(Forwards/Reverse/Ascending/Descending/Optimized). Only available for widget type equal to circular
spacing: #sets the distance between nodes. Only available for widget type equal to circular
defaultElectricalCharge: #sets the default electrical charge value. Only available for widget type equal to force-directed
defaultSpringStiffness: #sets the default spring stiffness value. Only available for widget type equal to force-directed
defaultSpringLength: #sets the default spring stiffness length. Only available for widget type equal to force-directed
epsilonDistance: #sets approximately how far a node must move in order for the iterations to continue. Only available for widget type equal to force-directed
maxIterations: # sets the maximum number of iterations to perform. Only available for widget type equal to force-directed
infinityDistance: #sets a threshold for the distance beyond which the electrical charge forces may be ignored. Only available for widget type equal to force-directed
force:
medoidValue: #sets the medoid value from one of the value of the attribute associated with the force. Only available for widget type equal to force-directed nad the subType is medoid
link:
generalThickness: #sets the default thickness of the links when no attributes are associated to the thickness property
generalLinkColor: #sets the default color of the links when no attributes are associated to the thickness property
colorway: #is a list containing a number of colors in hexadecimal that will progressively define the color of each node
startcolor: #sets the starting index of the colorway
colorTraces: # object containig the information of the custom color set for any attribute value
<"attributeValue">: #sets the custom color in hexadecimal
haloAttribute: #sets the type of the halo selected(null/icon/text)
haloFirstIcon: #sets the starting icon of the the link halos if the haloAttribute is icon. This will be the starting value that will progressively set which icon to assign to each value of the attribute
haloIconTraces: #list containing the custom icons for each associated attribute value
- <"attributeValueTopHalo">: #set the custom icon for each attribute value (halo top)
icon: #the actual icon in different format
variant: #the 3 types of icon (mui/rulex/custom)
color: #the color of the icon
hoverColor: #set the change of the icon color when the element is hovered
- <"attributeValueBottomHalo">: #set the custom icon for each attribute value (halo bottom)
icon: #the actual icon in different format
variant: #the 3 types of icon (mui/rulex/custom)
color: #the color of the icon
hoverColor: #set the change of the icon color when the element is hovered
tooltipText: #sets the tooltip text
tooltipVisible: #show the tootlip
node:
generalSize: #sets the default size of the node when no attributes are associated to the size property
generalColor: #sets the default color of the node when no attributes are associated to the color property
generalShape: #sets the default color of the node when no attributes are associated to the shape property
generalIcon: #sets the default icon of the node when no attributes are associated to the icon property
icon: #the actual icon in different format
variant: #the 3 types of icon (mui/rulex/custom)
color: #the color of the icon
hoverColor: #set the change of the icon color when the element is hovered
generalIconPercentage: #sets the default icon size of the node when no attributes are associated to the icon property
iconPercentage: #set a custom size for all the nodes icons
firstIcon: #sets the starting icon of the node that will progressively set which icon to assign to each value of the attribute.
hideIcon: #hide all the icons of the nodes
iconTraces: #object containing the custom icons for each associated attribute value
<"attributeValue">: #set the custom icon for each attribute value (node)
icon: #the actual icon in different format
variant: #the 3 types of icon (mui/rulex/custom)
color: #the color of the icon
hoverColor: #set the change of the icon color when the element is hovered
<"attributeValue2">: #set the custom icon for each attribute value (node)
icon: #the actual icon in different format
variant: #the 3 types of icon (mui/rulex/custom)
color: #the color of the icon
hoverColor: #set the change of the icon color when the element is hovered
firstShape: #sets the starting shape of the node that will progressively set which shape to assign to each value of the attribute.
hideShape: #hide all the shapes of the nodes
shapeTraces: #object containing the custom shape for each associated attribute value
<"attributeValue">: #set the custom shape for each attribute value (node)
<"attributeValue2">: #set the custom shape for each attribute value (node)
colorway: #is a list containing a number of colors in hexadecimal that will progressively define the color of each node
startcolor: #sets the starting index of the colorway
strokeNoFilled: #sets if the color affects the border or the background of the node
colorTraces: #object containing the custom color for each associated attribute value
<"attributeValue">: #set the custom color for each attribute value (node)
<"attributeValue2">: #set the custom color for each attribute value (node)
haloAttribute: #sets the type of the halo selected(null/icon/number). The value of node halo corresponds to a list of length 4. The values in the list correspond respectively to the corners of the node in this order TL, TR, BR, BL
haloFirstIcon: #sets the starting icon of the the link halos if the haloAttribute is icon. This will be the starting value that will progressively set which icon to assign to each value of the attribute. The value of node halo corresponds to a list of length 4. The values in the list correspond respectively to the corners of the node in this order TL, TR, BR, BL
haloIconTraces: #list containing the custom icons for each associated attribute value. The value of node halo corresponds to a list of length 4. The values in the list correspond respectively to the corners of the node in this order TL, TR, BR, BL
- <"attributeValueTL">:
icon: #the actual icon in different format
variant: #the 3 types of icon (mui/rulex/custom)
color: #the color of the icon
hoverColor: #set the change of the icon color when the element is hovered
- <"attributeValueTR">:
icon: #the actual icon in different format
variant: #the 3 types of icon (mui/rulex/custom)
color: #the color of the icon
hoverColor: #set the change of the icon color when the element is hovered
- <"attributeValueBR">:
icon: #the actual icon in different format
variant: #the 3 types of icon (mui/rulex/custom)
color: #the color of the icon
hoverColor: #set the change of the icon color when the element is hovered
- <"attributeValueBL">:
icon: #the actual icon in different format
variant: #the 3 types of icon (mui/rulex/custom)
color: #the color of the icon
hoverColor: #set the change of the icon color when the element is hovered
tooltipText: #sets the tooltip text
tooltipVisible: #show the tootlip
minLength: #when the type is "force-directed"
type: #describe the type of the widget
subType: #indicate the sub type only when the widget type is "force-directed" otherwise it is not used
data: