The Bipartite Network Graph algorithm plots a bipartite network, that is, a network with exactly two distinct types of nodes. For instance, in the network below, one type of node represents a person, and the other type represents an action. The Extract Bipartite Network algorithm is an easy way to generate networks that are graphable by this plugin.

Bipartite Network Graph Example (web format) (pdf)
Bipartite Network Graph Example (print format) (pdf)

The nodes and edges can each be independently weighted. The algorithm chooses which column to put a node in based on a node attribute called "bipartitetype." For details on the input format, see Usage Hints below.

Pros & Cons

It's easy to see the network structure in bipartite networks because of the obvious separation between the two different node types. However, medium to large networks (50+ nodes) may not look very good.


Implementation Details

The graph is rendered to a PNG file and a PostScript (PS) file.

Usage Hints

This is the network file (NWB (.nwb) format) that was used to generate the example graphs above:

id*int label*string  totaldesirability*int bipartitetype*string
1	"Applicant's Proposal" 1 "Who"
2	"Kiss My Red Ruby Lips" 5 "What"
3	"Shoe My Pretty Little Feet" 10 "What"
4	"Glove My Hand" 9 "What"
5	"Be My Man" 4 "What"
6	"Papa" 9 "Who"
7	"Mama" 8 "Who"
8	"Sister" 4 "Who"
9	"No Man" 3 "Who"
source*int target*int linkdesirability*int
1	4	 1
1	2	 1
1	3	 1
1	5	 1
6	3	 9
7	4	 8
8	2	 4
9	5	 3

The nodes are required to have an attribute called "bipartitetype". Note that in the above network, the two values of "bipartitetype" are "Who and "What". These are also the titles of the columns in the graph. This attribute is used to determine which column the nodes should go in. You can generate your own network with this attribute, or you can use the Extract Bipartite Network algorithm.

The weights ("totaldesirability" and "linkdesirability") were generated using an aggregation function file with the Extract Bipartite Network algorithm. For more on this, see Extract Bipartite Network and the Extract Co-Occurrence Network page (for info on aggregation functions).

To generate the graph file above, I imported no-man.csv into Sci2, then ran the Extract Bipartite Network algorithm. I chose "Who" and "What" as the First and Second Column parameters, and used aggfunc-man.txt as the Aggregate Function File. I saved the resulting file as a NWB file.


  • Left side node type: which of the two values of "bipartitetype" should put a node in the left-hand column? The other type of nodes will go on the right.
  • Node size: which node attribute should be used to scale the size of the nodes? If none is selected, the nodes will all be the same size.
  • Edge weight: which edge attribute should be used to set the darkness of the edges between nodes? If none is selected, the edges will all be the same color.
  • Title for left column: the title to print above the left column of nodes. If left blank, the value of "bipartitetype" for this column will be used.
  • Title for right column: just like the left column.


This algorithm makes use of the javaGeom library.


See Also

The license could not be verified: License Certificate has expired! Generate a Free license now.