Source code for mendeleev.vis.periodictable
from mendeleev.vis.bokeh import periodic_table_bokeh
from mendeleev.vis.plotly import periodic_table_plotly
from mendeleev.vis.utils import create_vis_dataframe
[docs]
def periodic_table(
attribute: str = "atomic_weight",
height: int = 800,
width: int = 1200,
decimals: int = 3,
colorby: str = "color",
missing: str = "#ffffff",
title: str = "Periodic Table",
cmap: str = "RdBu_r",
wide_layout: bool = False,
include_f_block: bool = True,
backend="plotly",
):
"""High level api for visualizing periodic tables.
Currently supports plotting backends:
- bokeh
- plotly
Args:
attribute (str, optional): Name of the attribute to display. Defaults to "atomic_weight".
height (int, optional): Height of the figure in pixels. Defaults to 800.
width (int, optional): Width of the figure in pixels. Defaults to 1200.
decimals (int, optional): Number of decimals to be displayed for `attribute`. Defaults to 3.
colorby (str, optional): Name of the columns that contains color values. Defaults to "color".
missing (str, optional): Hex code for the color to be used for missing values. Defaults to "#ffffff".
title (str, optional): Title. Defaults to "Periodic Table".
cmap (str, optional): Colormap name. Defaults to "RdBu_r".
wide_layout (bool, optional): If `True` wide layout is used with *f* block
between *s* and *d* blocks. Defaults to False.
include_f_block (bool, optional): Flag indicating whether to include the _f_ block. Defaults to True.
backend (str, optional): Plotting backennd. Defaults to "plotly".
Raises:
ValueError: upon specifying unsupported ploting backend.
Returns:
fig: figure instance, either `plotly.Figure` or `bokeh.plotting.figure`
"""
elements = create_vis_dataframe(
include_f_block=include_f_block, wide_layout=wide_layout
)
backends = {
"plotly": periodic_table_plotly,
"bokeh": periodic_table_bokeh,
}
if backend not in backends:
raise ValueError(f"unsupported plotting backend: {backend}")
plotter = backends[backend]
return plotter(
elements,
attribute=attribute,
height=height,
width=width,
decimals=decimals,
colorby=colorby,
missing=missing,
title=title,
cmap=cmap,
wide_layout=wide_layout,
)