Collections for plotting¶
Collections are a number of different symbols that can be plotted as a unit in matplotlib, which is very handy when plotting a large number of the same component, such as junctions in pandapipes. In order to create such collections for different components of a pandapipes network, there are some functions to be found in the plotting module of pandapipes.
Creating collections¶
The following functions can be used to create collections for the most important components of a pandapipes network. Please note that some of these functions in fact return more than just one collection:
-
create_junction_collection
(net, junctions=None, size=5, patch_type='circle', color=None, z=None, cmap=None, norm=None, infofunc=None, picker=False, junction_geodata=None, cbar_title='Junction Pressure [bar]', \*\*kwargs)¶ Creates a matplotlib patch collection of pandapipes junctions.
- Parameters
net (pandapipesNet) – The pandapipes network
junctions (list, default None) – The junctions for which the collections are created. If None, all junctions in the network are considered.
size (int, default 5) – patch size
patch_type (str, default "circle") – patch type, can be - “circle” or “ellipse” for an ellipse (cirlces are just ellipses with the same width + height) - “rect” or “rectangle” for a rectangle - “poly<n>” for a polygon with n edges
color (iterable, float, default None) – color or list of colors for every element
z (array, default None) – array of magnitudes for colormap. Used in case of given cmap. If None, net.res_junction.p_bar is used.
cmap (matplotlib colormap object, default None) – colormap for the patch colors
norm (matplotlib norm object, default None) – matplotlib norm object
infofunc (function, default None) – infofunction for the patch element
picker (bool, default False) – picker argument passed to the patch collection
junction_geodata (pandas.DataFrame, default None) – coordinates to use for plotting. If None, net[“junction_geodata”] is used
cbar_title (str, default "Junction Pressure [bar]") – colormap bar title in case of given cmap
kwargs – keyword arguments are passed to the patch function and the patch maker
- Returns
pc (matplotlib collection object) - patch collection
-
create_pipe_collection
(net, pipes=None, pipe_geodata=None, junction_geodata=None, use_junction_geodata=False, infofunc=None, cmap=None, norm=None, picker=False, z=None, cbar_title='Pipe Loading [%]', clim=None, \*\*kwargs)¶ Creates a matplotlib pipe collection of pandapipes pipes.
- Parameters
net (pandapipesNet) – The pandapipes network
pipes (list, default None) – The pipes for which the collections are created. If None, all pipes in the network are considered.
pipe_geodata (pandas.DataFrame, default None) – coordinates to use for plotting. If None, net[“pipe_geodata”] is used
junction_geodata (pandas.DataFrame, default None) – coordinates to use for plotting in case of use_junction_geodata=True. If None, net[“junction_geodata”] is used
use_junction_geodata (bool, default False) – Defines whether junction or pipe geodata are used.
infofunc (function, default None) – infofunction for the line element
cmap (matplotlib norm object, default None) – colormap for the line colors
norm (matplotlib norm object, default None) – matplotlib norm object
picker (bool, default False) – picker argument passed to the patch collection
z (array, default None) – array of pipe loading magnitudes for colormap. Used in case of given cmap. If None, net.res_pipe.loading_percent is used.
cbar_title (str, default "Pipe Loading [%]") – colormap bar title in case of given cmap
clim (tuple of floats, default None) – setting the norm limits for image scaling
kwargs – keyword arguments are passed to the patch function and the patch maker
- Returns
lc (matplotlib line collection)- line collection for pipes
-
create_sink_collection
(net, sinks=None, size=1.0, infofunc=None, picker=False, orientation=2.6179938779914944, \*\*kwargs)¶ Creates a matplotlib patch collection of pandapipes sinks.
- Parameters
net (pandapipesNet) – The pandapipes network
sinks (list, default None) – The sinks for which the collections are created. If None, all sinks connected to junctions that have junction_geodata entries are considered.
size (float, default 1) – patch size
infofunc (function, default None) – infofunction for the patch element
picker (bool, default False) – picker argument passed to the patch collection
orientation (float, default np.pi) – orientation of sink collection. pi is directed downwards, increasing values lead to clockwise direction changes.
kwargs – key word arguments are passed to the patch function
- Returns
sink_pc - patch collection sink_lc - line collection
-
create_source_collection
(net, sources=None, size=1.0, infofunc=None, picker=False, orientation=3.665191429188092, \*\*kwargs)¶ Creates a matplotlib patch collection of pandapipes sources.
- Parameters
net (pandapipesNet) – The pandapipes network
sources (list, default None) – The sources for which the collections are created. If None, all sources connected to junctions that have junction_geodata entries are considered.
size (float, default 1.) – patch size
infofunc (function, default None) – infofunction for the patch element
picker (bool, default False) – picker argument passed to the patch collection
orientation (float, default np.pi) – orientation of source collection. pi is directed downwards, increasing values lead to clockwise direction changes.
kwargs – key word arguments are passed to the patch function
- Returns
source_pc - patch collection source_lc - line collection
-
create_ext_grid_collection
(net, size=1.0, infofunc=None, orientation=0, picker=False, ext_grids=None, ext_grid_junctions=None, \*\*kwargs)¶ Creates a matplotlib patch collection of pandapipes ext_grid. Parameters ext_grids, ext_grid_junctions can be used to specify, which ext_grids the collection should be created for.
- Parameters
net (pandapipesNet) – The pandapipes network
size (float, default 1.) – patch size
infofunc (function, default None) – infofunction for the patch element
orientation (float, default 0) – orientation of ext_grid collection. 0 is directed upwards, increasing values lead to clockwise direction changes.
picker (bool, default False) – picker argument passed to the patch collection
ext_grids (list, default None) – The ext_grids for which the collections are created. If None, all ext_grids which have the entry coords in ext_grid_geodata are considered.
ext_grid_junctions (np.ndarray, default None) – junctions to be used as ext_grid locations
kwargs – key word arguments are passed to the patch function
- Returns
ext_grid1 - patch collection ext_grid2 - patch collection
-
create_valve_collection
(net, valves=None, size=5.0, junction_geodata=None, color='k', infofunc=None, picker=False, fill_closed=True, respect_valves=False, \*\*kwargs)¶ Creates a matplotlib patch collection of pandapipes junction-junction valves. Valves are plotted in the center between two junctions with a “helper” line (dashed and thin) being drawn between the junctions as well.
- Parameters
net (pandapipesNet) – The pandapipes network
valves (list, default None) – The valves for which the collections are created. If None, all valves which have enries in the respective junction geodata will be plotted.
size (float, default 5.) – patch size
junction_geodata (pandas.DataFrame, default None) – coordinates to use for plotting. If None, net[“junction_geodata”] is used
colors (iterable, float, default None) – color or list of colors for every valve
infofunc (function, default None) – infofunction for the patch element
picker (bool, default False) – picker argument passed to the patch collection
fill_closed (bool, default True) – If True, valves with parameter opened == False will be filled and those with opened == True will have a white facecolor. Vice versa if False.
kwargs – key word arguments are passed to the patch function
- Returns
lc - line collection pc - patch collection
-
create_heat_exchanger_collection
(net, hex=None, size=5.0, junction_geodata=None, color='k', infofunc=None, picker=False, \*\*kwargs)¶ Creates a matplotlib patch collection of pandapipes junction-junction heat_exchangers. Heat_exchangers are plotted in the center between two junctions with a “helper” line (dashed and thin) being drawn between the junctions as well.
- Parameters
net (pandapipesNet) – The pandapipes network
size (float, default 2.) – patch size
helper_line_style (str, default ":") – Line style of the “helper” line being plotted between two junctions connected by a junction-junction heat_exchanger
helper_line_size (float, default 1.) – Line width of the “helper” line being plotted between two junctions connected by a junction-junction heat_exchanger
helper_line_color (str, default "gray") – Line color of the “helper” line being plotted between two junctions connected by a junction-junction valve
orientation (float, default np.pi/2) – orientation of heat_exchanger collection. pi is directed downwards, increasing values lead to clockwise direction changes.
kwargs – Key word arguments are passed to the patch function
- Returns
heat_exchanger, helper_lines
- Return type
tuple of patch collections
Drawing collections¶
In order to draw a number of created collections, they can be added to a list and
handed over to the function draw_collections()
which is actually part of pandapower.
It returns a matplotlib axes, which can be extended by using add_collections_to_axes()
.
-
draw_collections
(collections, figsize=10, 8, ax=None, plot_colorbars=True, set_aspect=True, axes_visible=False, False, copy_collections=True, draw=True)¶ Draws matplotlib collections which can be created with the create collection functions.
- Input:
collections (list) - iterable of collection objects, may include tuples of collections
- OPTIONAL:
figsize (tuple, (10,8)) - figsize of the matplotlib figure
ax (axis, None) - matplotlib axis object to plot into, new axis is created if None
plot_colorbars (bool, True) - defines whether colorbars should be plotted
set_aspect (bool, True) - defines whether ‘equal’ and ‘datalim’ aspects of axis scaling should be set.
axes_visible (tuple, (False, False)) - defines visibility of (xaxis, yaxis)
- OUTPUT:
ax - matplotlib axes
-
add_collections_to_axes
(ax, collections, plot_colorbars=True, copy_collections=True)¶