Zum Inhalt

draw

dsstools.draw

Module for drawing network images through method chaining.

NOT_IMPLEMENTED = NotImplementedError('This feature is yet to be implemented.') module-attribute

logger = get_logger(__name__) module-attribute

Description()

Class containing description drawing preferences.

alpha = 0.5 instance-attribute

size = 8 instance-attribute

text = '' instance-attribute

set_text(text)

Set the description setting.

Parameters:

Name Type Description Default
text str

Text to set as description

required

Edges(labels=None)

Bases: GraphElement

alphas = fixed(1) instance-attribute

arrow_size = 2 instance-attribute

colors = fixed('lightgrey') instance-attribute

labels = labels instance-attribute

sizes = fixed(0.5) instance-attribute

set_alphas(arg)

Set alpha based on argument.

Parameters:

Name Type Description Default
arg GenericMapping | float

The text transparency as mapping between 0 and 1.

required

Returns: self

set_colors(arg)

Set the colors of the displayed nodes.

Parameters:

Name Type Description Default
arg GenericMapping | str

Colors to set. String values will be mapped onto all nodes.

required

Returns:

Type Description

self

set_sizes(arg)

Set size of labels for nodes as pt sizes.

Parameters:

Name Type Description Default
arg GenericMapping | int | float

Font size for text labels

required

Returns: self

set_transparency(arg)

Set transparency based on argument.

This is the same as set_alphas(). Alpha is the value for the transparency of a color.

Parameters:

Name Type Description Default
arg GenericMapping | float

The text transparency as mapping between 0 and 1.

required

Returns: self

GraphElement

set_alphas(arg)

Set alpha based on argument.

Parameters:

Name Type Description Default
arg GenericMapping | float

The text transparency as mapping between 0 and 1.

required

Returns: self

set_colors(arg)

Set the colors of the displayed nodes.

Parameters:

Name Type Description Default
arg GenericMapping | str

Colors to set. String values will be mapped onto all nodes.

required

Returns:

Type Description

self

set_sizes(arg)

Set size of labels for nodes as pt sizes.

Parameters:

Name Type Description Default
arg GenericMapping | int | float

Font size for text labels

required

Returns: self

set_transparency(arg)

Set transparency based on argument.

This is the same as set_alphas(). Alpha is the value for the transparency of a color.

Parameters:

Name Type Description Default
arg GenericMapping | float

The text transparency as mapping between 0 and 1.

required

Returns: self

GraphKey(mapping, label=None, graph_element=None)

Class to create graph key objects like colorbars or legends.

label = label instance-attribute

mapping = mapping instance-attribute

shape = None instance-attribute

create_legend()

GraphKeyGenerator()

Base class for generating graph keys.

Graph keys contain both colorbars and legends as a MatplotLib figure.

colorbars: list = [] instance-attribute

keys: list = [] instance-attribute

legends: list = [] instance-attribute

add_graph_key(graph_key)

draw_keys()

Determine the figure axis and draw the graph keys.

Colorbars have their own axis while 3 legends are drawn on 1 axis.

place_colorbar(colorbar, ax)

Generates then places the given colorbar on the given axis.

The colorbar is generated based on its mapping and the fallback is appended to the bottom of the generated colorbar axis.

Parameters:

Name Type Description Default
colorbar GraphKey

colorbar to be placed

required
ax _AxesBase

column axis in which to place the legend

required

place_legend(legend, ax, index)

Places legend on the given axis based on the index. Limit of 3 legends per axis, fills axis from top to bottom.

Parameters:

Name Type Description Default
legend GraphKey

Legend to be placed

required
ax _AxesBase

column axis in which to place the legend

required
index int

index of the legend for determining placement within the given ax

required

sort_keys()

Add the graph keys to either self.colorbars or self.legends based on the attributes of the graph keys.

ImageGenerator(graph)

Base class for setting up image generation.

axis = None instance-attribute

axlimit = 1.05 instance-attribute

canvas_height = 10 instance-attribute

canvas_right = None instance-attribute

canvas_width = 10 instance-attribute

continous_cmap = mpl.colormaps['viridis'] instance-attribute

description = Description() instance-attribute

dpi = 200 instance-attribute

edges = Edges() instance-attribute

graph = graph instance-attribute

graph_keys = GraphKeyGenerator() instance-attribute

img_dir = Path('.') instance-attribute

nodes = Nodes(Labels()) instance-attribute

qualitative_cmap = mpl.colormaps['tab10'] instance-attribute

change_graph(graph)

Set the graph attribute.

Parameters:

Name Type Description Default
graph

A NetworkX graph object.

required

Returns:

Type Description

self

deepcopy()

Create deep copy of the object.

This is the same as calling copy.deepcopy() on the object

draw()

draw_description()

Draw description below the image according to the settings.

draw_edges()

Draw edges according to the settings.

draw_labels()

Draw labels based on values.

draw_nodes()

Draw nodes according to the settings.

set_axis(axis)

Set an existing matplotlib axis object as ImageGenerator object.

Parameters:

Name Type Description Default
axis

Matplotlib axis

required

Returns:

Type Description

self

set_graph_key(mapping, graph_element=None, label=None)

Set a graph key.

Graph keys consist of legends and colorbars.

Parameters:

Name Type Description Default
mapping Sequential | Qualitative

mapping strategy for the basis of the graph key

required
graph_element Literal['edges', 'nodes', None]

the graph element to be modeled, necessary for generating text box legends.

None
label str | None

optional label to be applied to the graph key

None

Returns:

Type Description

self

set_graph_keys(graph_keys)

Set the graph_keys setting.

Graph keys consist of legends and colorbars.

Parameters:

Name Type Description Default
graph_keys GraphKeyGenerator

GraphKeyGenerator object which contains all legends and/or colorbars to be drawn

required

Returns:

Type Description

self

write_file(path)

Write file to disk on the given path.

Will also close the internal figure object.

Parameters:

Name Type Description Default
path str | Path

str | Path: Path to write the file to.

required

Returns:

Type Description

self

write_json(path)

Write the graph data to a json file.

This is following nx.node_link_data format as shown here: https://networkx.org/documentation/stable/reference/readwrite/generated/networkx.readwrite.json_graph.node_link_data.html

Parameters:

Name Type Description Default
path str | Path

saving location and name for the json-file

required

Returns:

Type Description
ImageGenerator

self

Labels()

Bases: GraphElement

alphas = None instance-attribute

colors = None instance-attribute

font_families = None instance-attribute

labels = [] instance-attribute

show_labels = False instance-attribute

sizes = None instance-attribute

set_alphas(arg)

Set alpha based on argument.

Parameters:

Name Type Description Default
arg GenericMapping | float

The text transparency as mapping between 0 and 1.

required

Returns: self

set_colors(arg)

Set the colors of the displayed nodes.

Parameters:

Name Type Description Default
arg GenericMapping | str

Colors to set. String values will be mapped onto all nodes.

required

Returns:

Type Description

self

set_font_families(arg)

Set font family for all labels if single font is passed,.

Allows for multiple fonts to be set if an array of fonts is passed, allows for fonts to be individually set for labels based on the given node if a dictionary is passed.

Parameters:

Name Type Description Default
arg GenericMapping | str

Font family

required

set_labels(arg)

Set labels for nodes based on arguments.

Parameters:

Name Type Description Default
arg dict

node identifier as the integer and the label as the string

required

set_sizes(arg)

Set size of labels for nodes as pt sizes.

Parameters:

Name Type Description Default
arg GenericMapping | int | float

Font size for text labels

required

Returns: self

set_transparency(arg)

Set transparency based on argument.

This is the same as set_alphas(). Alpha is the value for the transparency of a color.

Parameters:

Name Type Description Default
arg GenericMapping | float

The text transparency as mapping between 0 and 1.

required

Returns: self

Nodes(labels=None)

Bases: GraphElement

alphas = fixed(1) instance-attribute

colors = fixed('lightgrey') instance-attribute

contour_colors = fixed('white') instance-attribute

contour_sizes = fixed(0.5) instance-attribute

labels = labels instance-attribute

positions = None instance-attribute

sizes = fixed(50) instance-attribute

set_alphas(arg)

Set alpha based on argument.

Parameters:

Name Type Description Default
arg GenericMapping | float

The text transparency as mapping between 0 and 1.

required

Returns: self

set_colors(arg)

Set the colors of the displayed nodes.

Parameters:

Name Type Description Default
arg GenericMapping | str

Colors to set. String values will be mapped onto all nodes.

required

Returns:

Type Description

self

set_contour_colors(arg)

Set the contour color of the displayed nodes.

Contour means the outer border of a node.

Parameters:

Name Type Description Default
arg GenericMapping | str

Colors to set. String values will be mapped onto all node contours. Additional options contain "node" and "edge" to automatically select the corresponding color.

required

Returns:

Type Description

self

set_contour_sizes(arg)

Set the contour sizes of the displayed nodes.

Contour means the outer border of a node.

Parameters:

Name Type Description Default
arg GenericMapping | float | int

Sizes to set. Integer values will be mapped onto all node contours. String values will get mapped onto the corresponding data arrays or closeness values per node.

required

Returns:

Type Description

self

set_positions(pos)

Set the node positions as a dict or list.

When using a file, use set_position_file() instead.

Parameters:

Name Type Description Default
pos dict | list | Path | str

dict | list: Array of positions. Dicts should be keyed by node ID.

required

Returns:

Type Description

self

set_sizes(arg)

Set the sizes of the displayed nodes.

Parameters:

Name Type Description Default
arg GenericMapping | float | int

Sizes to set. Scalar values will be mapped onto all nodes. String values

required

Returns:

Type Description

self

set_transparency(arg)

Set transparency based on argument.

This is the same as set_alphas(). Alpha is the value for the transparency of a color.

Parameters:

Name Type Description Default
arg GenericMapping | float

The text transparency as mapping between 0 and 1.

required

Returns: self

ensure_file_format(path, user_saving_format, *, default_format)

Ensure the provided path has a saving format.

Parameters:

Name Type Description Default
path str | Path

the path that needs to be validated

required
user_saving_format str | None

the saving format provided by the user

required
default_format str

the format a programmer can set that will be used as default, if no format was provided at all

required

Returns:

Type Description
tuple[Path, str]

the filepath and format (without leading dot) as an 2-Tuple