This feature allows for the import of files from spreadsheet software like Microsoft Excel®, OpenOffice.org Calc, and Google Docs. At the moment, yEd can open the following file formats directly:
By using one of the above mentioned applications as intermediate converter, a large number of other file formats is also supported, for example text files containing comma-separated values (*.csv).
In addition to the plain graph structure, i.e., the nodes and edges, an arbitrary number of custom properties can be imported. At the moment, the following means of representation are supported: adjacency matrix, edge list, and node list.
The import dialog consists of the settings panel on the left-hand side and the spreadsheet panel on the right-hand side.
The spreadsheet panel shows the file content in one table per sheet similar to other tools. The relevant data ranges can be selected using the mouse and adopted into the matching settings item.
The settings panel consists of the sections Data and Presentation. Data contains separate groups of settings for every means of representation. These settings are needed for correctly opening the file. The adjacency matrix and edge list representations are mutually exclusive and a node list can be used in combination with both of them.
In Presentation, there are optional settings to control the details of the presentation of the graph. The same results can be achieved by using the corresponding layout algorithms and tools retroactively.
The most important properties of the means of representation available in yEd are discussed in dedicated sections. Additionally, we exemplarily import a small graph of 5 nodes, 8 edges, and some custom properties there:
For more general information, the Wikipedia article on adjacency matrix is a good starting point: http://en.wikipedia.org/wiki/Adjacency_matrix
.
This representation is based on a matrix in which each node is related to one row and one column. Thus, a graph of n nodes requires a matrix of size n x n. The cells of the matrix define the edges of the graph and an edge connecting the nodes i and j exists if and only if the cell at position (i,j) is not empty and its value is not equal to 0.
The values of cells which yield edges are provided in a custom edge property. Optionally, yEd can treat the values of the first row and the first column of the matrix as node IDs and import them as custom property. Typically, the sequence of nodes implied by the rows and columns is the same. However, if node IDs are present in both the first row and the first column, the mapping to nodes respects these IDs. Thereby, yEd handles differing mappings for rows and columns correctly, which is useful for example for bipartite representations. To allow additional custom node properties besides the node ID, this representation can be combined with a node list. In this case, nodes from the matrix and from the list are mapped according to the specified node IDs.
The above illustration shows the representation of the example graph as an adjacency matrix. The cells A4:A8 in column A and B3:F3 in row 3, which are highlighted in blue, contain node IDs, and the other cells in the range B4:F8 represent potential edges. Thus, the resulting graph contains 8 edges, defined by the cells of value 1. For example, the cells C4, D4, and E4 establish edges from Anna to Ben, to Chris, and to Dan, respectively, and there is no edge from Anna to Elena since the value of cell F4 is 0. The following screenshot shows the settings for the import of the example matrix including the node IDs from the first row and the first column. Please note that the input field Data Range contains the cell range and a sheet name (here 'Matrix 1'). Since the node IDs in rows and columns are the same, using only one of them results in the same graph. For example, it is sufficient to specify the range A4:F8 and enable the setting Node IDs in First Column.
Typically, the sequence of nodes represented by rows and by columns is the same, i.e., row i and column i represent the same node. If node IDs are present simultaneously for rows and for columns, the mapping respects the IDs and the sequences can be different. Thus, it is possible to import bipartite matrix representations, for example. Additionally, empty cells are supported and are handled like cells of value 0. The following example represents a graph which is equal to the example above except for the values of the edge property.
This means of representation describes the graph in a list of edges. Every edge is related to a separate row which contains the IDs of the two end nodes of the edge and an arbitrary number of additional values which are provided as custom edge properties. The sequence of the types of the entries of all rows must be identical, that is, for example, if the ID of the source node is the second entry of the first row, it must be the second entry of all other rows, too. The node IDs are provided as custom (node) property. To allow additional custom node properties besides the node ID, this representation can be combined with a node list. In this case, nodes from the matrix and from the list are mapped according to the specified node IDs.
The table above shows the representation of the example graph as edge list. The cells of row 3 which are highlighted in blue contain the names of custom edge properties and each following row corresponds to one edge. In each row, the columns A and B indicate the IDs of source and target nodes followed by the values of the edge properties Weight and Label. For example, the rows 4, 5, and 6 describe edges from Anna to Ben, to Chris, and to Dan, respectively. If the imported graph does not contain the edges you expected, please check if you selected the correct columns for the IDs.
A node list represents only nodes and no edges. Its main use case is the combination with one of the other means to specify additional node properties, however, it can also be used on its own. The format is similar to edge lists, but every row is related to a node. Besides the ID of the respective node, it can contain an arbitrary number of additional values which are provided as custom node properties. Just like for edge lists, the sequence of the types of the entries of all rows must be identical, that is, for example, if the ID of the node is the second entry of the first row, it must be the second entry of all other rows, too.
The above illustration shows a node list that is compatible with the example graph. The cells of row 3 which are highlighted in blue contain the names of custom node properties and each following row corresponds to one node. The values in column A (the property Name) can be used as node IDs to match each row and its corresponding node to a node from another type of representation. If there are IDs in the node list which do not match to nodes of another representation, additional nodes are created for them. Accordingly, if a node list is used without an additional representation, the resulting graph will contain unconnected nodes only.
Determines the means of representation of the edges. Available options are adjacency matrix and edge list. Note that a node list can be combined with any of these.
Determines the range of cells which contains an adjacency matrix. If the aspect ratio of the specified range is invalid, empty cells are used to pad the shorter direction.
Specifies whether the first row (column) of the data range contains node IDs. Such header rows (columns) are ignored when creating edges.
Determines the range of cells which contains an edge list. In order to create a graph, the columns of source and target IDs are also required. Besides these IDs, each row may contain an arbitrary number of custom properties.
Determines which column contains the ID of the source node (target node). For convenience, 'Adopt' utilizes the column of the left cell of the current selection. Therefore, it is not necessary to select exactly the respective cells.
Specifies whether the first row of the data range contains property names. Such a header row is ignored when creating edges.
Determines the range of cells which contains a node list. If a node list is used in combination with another representation, the column of node IDs is required to match corresponding nodes of the two representations. Besides the ID, each row may contain an arbitrary number of custom properties.
Determines which column contains the ID of the node. For convenience, 'Adopt' utilizes the column of the left cell of the current selection. Therefore, it is not necessary to select exactly the respective cells.
Specifies whether the first row of the data range contains property names. Such a header row is ignored when creating nodes.
The settings on this tab enable you to determine the visual representation of newly created nodes and edges. Additionally, you can also choose the type of automatic layout that is applied to the graph that results from importing the spreadsheet data.
The following settings allow to specify aspects of the node representation.
You can use the values of a custom property as adopted from the spreadsheet data
as the label text of newly created nodes.
Alternatively, and more powerful, you can use a node configuration as defined in
the Properties Mapper dialog to turn custom
properties as adopted from the spreadsheet data into visual properties of the newly
created nodes.
The latter options are only available when 'Use Configuration' is disabled.
The following settings allow to specify aspects of the edge representation.
You can use the values of a custom property as adopted from the spreadsheet data
as the label text of newly created edges.
Alternatively, and more powerful, you can use a edge configuration as defined in
the Properties Mapper dialog to turn custom
properties as adopted from the spreadsheet data into visual properties of the newly
created edges.
The latter options are only available when 'Use Configuration' is disabled.
Determines the initial layout. Alternatives are circular, organic, and hierarchical layout. The computation takes the settings of the respective layout into account. Thus, their controls can be used to fine-tune the result.
Please check if your data ranges contain header rows and the settings 'Property Names in First Row' for node list and edge list are set accordingly.