# pymatgen.phasediagram.plotter module¶

class PDPlotter(phasediagram, show_unstable=0)[source]

Bases: object

A plotter class for phase diagrams.

Parameters: phasediagram – PhaseDiagram object. show_unstable (float) – Whether unstable phases will be plotted as well as red crosses. If a number > 0 is entered, all phases with ehull < show_unstable will be shown.
get_chempot_range_map_plot(elements, referenced=True)[source]

Returns a plot of the chemical potential range _map. Currently works only for 3-component PDs.

Parameters: elements – Sequence of elements to be considered as independent variables. E.g., if you want to show the stability ranges of all Li-Co-O phases wrt to uLi and uO, you will supply [Element(“Li”), Element(“O”)] referenced – if True, gives the results with a reference being the energy of the elemental phase. If False, gives absolute values. A matplotlib plot object.
get_contour_pd_plot()[source]

Plot a contour phase diagram plot, where phase triangles are colored according to degree of instability by interpolation. Currently only works for 3-component phase diagrams.

Returns: A matplotlib plot object.
get_plot(label_stable=True, label_unstable=True, ordering=None, energy_colormap=None, process_attributes=False)[source]
pd_plot_data

Plot data for phase diagram. 2-comp - Full hull with energies 3/4-comp - Projection into 2D or 3D Gibbs triangle.

Returns: lines is a list of list of coordinates for lines in the PD. stable_entries is a {coordinate : entry} for each stable node in the phase diagram. (Each coordinate can only have one stable phase) - unstable_entries is a {entry: coordinates} for all unstable nodes in the phase diagram. (lines, stable_entries, unstable_entries)
plot_chempot_range_map(elements, referenced=True)[source]

Plot the chemical potential range _map. Currently works only for 3-component PDs.

Parameters: elements – Sequence of elements to be considered as independent variables. E.g., if you want to show the stability ranges of all Li-Co-O phases wrt to uLi and uO, you will supply [Element(“Li”), Element(“O”)] referenced – if True, gives the results with a reference being the energy of the elemental phase. If False, gives absolute values.
show(*args, **kwargs)[source]

Draws the phase diagram using Matplotlib and show it.

Parameters: *args – Passed to get_plot. **kwargs – Passed to get_plot.
write_image(stream, image_format='svg', label_stable=True, label_unstable=True, ordering=None, energy_colormap=None, process_attributes=False)[source]

Writes the phase diagram to an image in a stream.

Parameters: stream – stream to write to. Can be a file stream or a StringIO stream. image_format – format for image. Can be any of matplotlib supported formats. Defaults to svg for best results for vector graphics.
order_phase_diagram(lines, stable_entries, unstable_entries, ordering)[source]

Orders the entries (their coordinates) in a phase diagram plot according to the user specified ordering. Ordering should be given as [‘Up’, ‘Left’, ‘Right’], where Up, Left and Right are the names of the entries in the upper, left and right corners of the triangle respectively.

Parameters: lines – list of list of coordinates for lines in the PD. stable_entries – {coordinate : entry} for each stable node in the phase diagram. (Each coordinate can only have one stable phase) unstable_entries – {entry: coordinates} for all unstable nodes in the phase diagram. ordering – Ordering of the phase diagram, given as a list [‘Up’, ‘Left’,’Right’] newlines is a list of list of coordinates for lines in the PD. newstable_entries is a {coordinate : entry} for each stable node in the phase diagram. (Each coordinate can only have one stable phase) - newunstable_entries is a {entry: coordinates} for all unstable nodes in the phase diagram. (newlines, newstable_entries, newunstable_entries)
tet_coord(coord)[source]

Convert a 3D coordinate into a tetrahedron based coordinate system for a prettier phase diagram.

Parameters: coordinate – coordinate used in the convex hull computation. coordinates in a tetrahedron-based coordinate system.
triangular_coord(coord)[source]

Convert a 2D coordinate into a triangle-based coordinate system for a prettier phase diagram.

Parameters: coordinate – coordinate used in the convex hull computation. coordinates in a triangular-based coordinate system.
uniquelines(q)[source]

Given all the facets, convert it into a set of unique lines. Specifically used for converting convex hull facets into line pairs of coordinates.

Parameters: q – A 2-dim sequence, where each row represents a facet. E.g., [[1,2,3],[3,6,7],...] A set of tuple of lines. E.g., ((1,2), (1,3), (2,3), ....) setoflines