## Submodules¶

The eqplot module contains functions for general plotting of the results of equilibrium calculations.

pycalphad.plot.eqplot.eqplot(eq, ax=None, x=None, y=None, z=None, tielines=True, **kwargs)[source]

Plot the result of an equilibrium calculation.

The type of plot is controlled by the degrees of freedom in the equilibrium calculation.

Parameters
• eq (xarray.Dataset) – Result of equilibrium calculation.

• ax (matplotlib.Axes) – Default axes used if not specified.

• x (StateVariable, optional) –

• y (StateVariable, optional) –

• z (StateVariable, optional) –

• tielines (bool) – If True, will plot tielines

• kwargs (kwargs) – Passed to matplotlib.pyplot.scatter.

Returns

Return type

matplotlib AxesSubplot

The ternary module enables plotting of ternary isobaric phase diagrams.

pycalphad.plot.ternary.ternplot(dbf, comps, phases, conds, x=None, y=None, eq_kwargs=None, **plot_kwargs)[source]

Calculate the ternary isothermal, isobaric phase diagram. This function is a convenience wrapper around equilibrium() and eqplot().

Parameters
• dbf (Database) – Thermodynamic database containing the relevant parameters.

• comps (list) – Names of components to consider in the calculation.

• phases (list) – Names of phases to consider in the calculation.

• conds (dict) – Maps StateVariables to values and/or iterables of values. For ternplot only one changing composition and one potential coordinate each is supported.

• x (Composition) – instance of a pycalphad.variables.composition to plot on the x-axis. Must correspond to an independent condition.

• y (Composition) – instance of a pycalphad.variables.composition to plot on the y-axis. Must correspond to an independent condition.

• eq_kwargs (optional) – Keyword arguments to equilibrium().

• plot_kwargs (optional) – Keyword arguments to eqplot().

Returns

Return type

A phase diagram as a figure.

Examples

None yet.

class pycalphad.plot.triangular.TriangularAxes(*args, **kwargs)[source]

Bases: matplotlib.axes._axes.Axes

A custom class for triangular projections.

can_zoom()[source]

Return True if this axes support the zoom box

cla()[source]

Override to set up some reasonable defaults.

drag_pan(button, key, x, y)[source]

Called when the mouse moves during a pan operation.

button is the mouse button number:

• 1: LEFT

• 2: MIDDLE

• 3: RIGHT

key is a “shift” key

x, y are the mouse coordinates in display coords.

Note

Intended to be overridden by new projection types.

end_pan()[source]

Called when a pan operation completes (when the mouse button is up.)

Note

Intended to be overridden by new projection types.

get_xaxis_text1_transform(pad)[source]
Returns

• transform (Transform) – The transform used for drawing x-axis labels, which will add pad_points of padding (in points) between the axes and the label. The x-direction is in data coordinates and the y-direction is in axis corrdinates

• valign ({‘center’, ‘top’, ‘bottom’, ‘baseline’, ‘center_baseline’}) – The text vertical alignment.

• halign ({‘center’, ‘left’, ‘right’}) – The text horizontal alignment.

Notes

This transformation is primarily used by the ~matplotlib.axis.Axis class, and is meant to be overridden by new kinds of projections that may need to place axis elements in different locations.

get_xaxis_text2_transform(pad)[source]
Returns

• transform (Transform) – The transform used for drawing secondary x-axis labels, which will add pad_points of padding (in points) between the axes and the label. The x-direction is in data coordinates and the y-direction is in axis corrdinates

• valign ({‘center’, ‘top’, ‘bottom’, ‘baseline’, ‘center_baseline’}) – The text vertical alignment.

• halign ({‘center’, ‘left’, ‘right’}) – The text horizontal alignment.

Notes

This transformation is primarily used by the ~matplotlib.axis.Axis class, and is meant to be overridden by new kinds of projections that may need to place axis elements in different locations.

get_xaxis_transform(which='grid')[source]

Get the transformation used for drawing x-axis labels, ticks and gridlines. The x-direction is in data coordinates and the y-direction is in axis coordinates.

Note

This transformation is primarily used by the ~matplotlib.axis.Axis class, and is meant to be overridden by new kinds of projections that may need to place axis elements in different locations.

get_yaxis_text1_transform(pad)[source]
Returns

• transform (Transform) – The transform used for drawing y-axis labels, which will add pad_points of padding (in points) between the axes and the label. The x-direction is in axis coordinates and the y-direction is in data corrdinates

• valign ({‘center’, ‘top’, ‘bottom’, ‘baseline’, ‘center_baseline’}) – The text vertical alignment.

• halign ({‘center’, ‘left’, ‘right’}) – The text horizontal alignment.

Notes

This transformation is primarily used by the ~matplotlib.axis.Axis class, and is meant to be overridden by new kinds of projections that may need to place axis elements in different locations.

get_yaxis_text2_transform(pad)[source]
Returns

• transform (Transform) – The transform used for drawing secondart y-axis labels, which will add pad_points of padding (in points) between the axes and the label. The x-direction is in axis coordinates and the y-direction is in data corrdinates

• valign ({‘center’, ‘top’, ‘bottom’, ‘baseline’, ‘center_baseline’}) – The text vertical alignment.

• halign ({‘center’, ‘left’, ‘right’}) – The text horizontal alignment.

Notes

This transformation is primarily used by the ~matplotlib.axis.Axis class, and is meant to be overridden by new kinds of projections that may need to place axis elements in different locations.

get_yaxis_transform(which='grid')[source]

Get the transformation used for drawing y-axis labels, ticks and gridlines. The x-direction is in axis coordinates and the y-direction is in data coordinates.

Note

This transformation is primarily used by the ~matplotlib.axis.Axis class, and is meant to be overridden by new kinds of projections that may need to place axis elements in different locations.

name = 'triangular'
start_pan(x, y, button)[source]

Called when a pan operation has started.

x, y are the mouse coordinates in display coords. button is the mouse button number:

• 1: LEFT

• 2: MIDDLE

• 3: RIGHT

Note

Intended to be overridden by new projection types.

The plot utils module contains some useful routines related to plotting.

pycalphad.plot.utils.phase_legend(phases)[source]

Build matplotlib handles for the plot legend.

Parameters

phases (list) – Names of the phases.

Returns

• A tuple containing

• (1) A list of matplotlib handle objects

• (2) A dict mapping phase names to their RGB color on the plot

Examples

>>> legend_handles, colors = phase_legend(['FCC_A1', 'BCC_A2', 'LIQUID'])