ternary_diagram

This package makes it easier for you to draw beautiful ternary diagram without pymatgen.

MIT License

Downloads
501
Stars
15
Committers
1

Ternary Diagram

This package makes it easier for you to draw beautiful ternary diagram without pymatgen.

Meaningly, only need numpy and matplotlib.

What you will be able to do with this package

  • Create beautiful contour maps easily
  • Creating a scatter plot
  • Draw tie lines
  • Automatically format chemical composition using subscripts
  • Most of the matplotlib options are available

How to install

PyPI

pip install ternary-diagram

PyPI project is here.

Anaconda

conda install -c conda-forge ternary-diagram

Anaconda (conda-forge) package site is here.

Usage

See Examples and the documentation.

Examples

An easy example is here.

import matplotlib.pyplot as plt
from ternary_diagram import TernaryDiagram

# You can set `ax` to select which axes to draw. If not, the current axes will be used.
td = TernaryDiagram(["Li2O", "La2O3", "TiO2"])

# scatter
td.scatter(vector=[[1, 1, 1], [1, 2, 3]], z=[0, 1])
# You can set some options in `plt.scatter` like `marker`, `c` etc.
td.scatter(vector=[[2, 1, 3], [3, 2, 1]], marker="s", c="#022c5e", s=30)

# line plot
# You can set some options in `plt.plot` like `lw`, `c`, and so on.
td.plot([[1, 1, 1], [1, 2, 3]], color="black")

# save figure
td.fig.savefig("figure.png", dpi=144)

It can be written like this.

# The background color is sometimes transparent in jupyter notebooks, so set facecolor 'white'.
fig, ax = plt.subplots(facecolor="w")

# You can set `ax` to select which axes to draw. If not, the current axes will be used.
td = TernaryDiagram(["Li2O", "La2O3", "TiO2"], ax=ax)

# scatter
td.scatter(vector=[[1, 1, 1], [1, 2, 3]], z=[0, 1])
# You can set some options in `plt.scatter` like `marker`, `c` etc.
td.scatter(vector=[[2, 1, 3], [3, 2, 1]], marker="s", c="#022c5e", s=30)

# line plot
# You can set some options in `plt.plot` like `lw`, `c`, and so on.
td.plot([[1, 1, 1], [1, 2, 3]], color="black")

# save figure
fig.savefig("figure.png", dpi=144)

It means that you can draw multiple figures in one figure object.

See also the example folder.

Histories

v3.1.0

  • Delete .utils._BasePlotter.get_x_y (we should access directly).
  • Resolve #10 (Create fill argument in TernaryDiagram.contour).
  • Resolve #11 (Create auto_latex_notation argument in TernaryDiagram).
  • Update documentation.
  • Update docstrings and typings.

LICENSE

See LICENSE.

MIT Licence

Copyright (c) 2021 yu9824