corset.display#
Utilities for formatting values with units in plots and tables.
- class corset.display.FormattedDataFrame(*args, formatters, **kwargs)#
A subclass of pandas DataFrame that allows for custom formatting of columns when displayed in HTML for Jupyter notebooks.
- to_html(buf=None, *, notebook=False, **kwargs) str#
Render the DataFrame as an HTML table with the specified formatters applied.
See
pandas.DataFrame.to_html()for details on the parameters.- Parameters:
buf (
None, default:None) – Buffer to write the HTML to. If None, returns the HTML as a string.notebook (
bool, default:False) – Whether to format the HTML for display in a Jupyter notebook.**kwargs – Additional keyword arguments passed to
pandas.DataFrame.to_html().
- Return type:
- Returns:
The HTML representation of the DataFrame as a string.
- class corset.display.FractionUnit(unicode, tex, factor, decimals) None#
Unit for fractional quantities, e.g. overlap or axis coupling.
- class corset.display.LengthUnit(unicode, tex, factor, decimals) None#
Unit for length quantities, e.g. coordinates along the beam or beam radii.
- class corset.display.SensitivityUnit(unicode, tex, factor, decimals) None#
Unit for sensitivity analysis, e.g. overlap sensitivity per unit length squared.
- class corset.display.Unit(unicode, tex, factor, decimals) None#
Unit for displaying values in plots and tables.
Can also be used as unit literals for multiplication with values, e.g.
2 * Units.Length.MILLIMETER == 0.002.- axis_formatter(decimals=None, include_unit=False) FuncFormatter#
Create a matplotlib axis formatter for this unit.
- Parameters:
- Return type:
- Returns:
A matplotlib FuncFormatter that formats axis ticks with this unit.
- format(value, *, dev=None, decimals=None, tex=False, array_threshold=5) str#
Format a value with this unit.
- Parameters:
value (
float|list[float] |ndarray|None) – The value to format.dev (
float|None, default:None) – The deviation of the value.decimals (
int|None, default:None) – The number of decimal places to display.tex (
bool, default:False) – Whether to use the LaTeX representation of the unit.array_threshold (
int, default:5) – The threshold for displaying arrays. If the number of elements in the array exceeds this threshold, it will be truncated.
- Return type:
- Returns:
A string representation of the value with the unit.
- class corset.display.Units#
Namespace for units used in the package.
- class Fraction#
Units for overlap.
- PERCENT = FractionUnit(unicode='%', tex='\\%', factor=0.01, decimals=1)#
Overlap and coupling in percent
- UNITY = FractionUnit(unicode='', tex='', factor=1, decimals=3)#
Overlap and coupling as a fraction, i.e. unitless
- Type:
#
- class Length#
Units for length.
- CENTIMETER = LengthUnit(unicode='cm', tex='\\mathrm{cm}', factor=0.01, decimals=1)#
- METER = LengthUnit(unicode='m', tex='\\mathrm{m}', factor=1, decimals=3)#
- MICROMETER = LengthUnit(unicode='μm', tex='\\mathrm{\\mu m}', factor=1e-06, decimals=0)#
- MILLIMETER = LengthUnit(unicode='mm', tex='\\mathrm{mm}', factor=0.001, decimals=0)#
- NANOMETER = LengthUnit(unicode='nm', tex='\\mathrm{nm}', factor=1e-09, decimals=0)#
- class Sensitivity#
Units for sensitivity analysis.
- PERCENT_PER_CENTIMETER2 = SensitivityUnit(unicode='%/cm²', tex='\\%/\\mathrm{cm}^2', factor=100.0, decimals=2)#
- PERCENT_PER_MILLIMETER2 = SensitivityUnit(unicode='%/mm²', tex='\\%/\\mathrm{mm}^2', factor=10000.0, decimals=0)#
- PER_METER2 = SensitivityUnit(unicode='%/m²', tex='\\%/\\mathrm{m}^2', factor=1, decimals=0)#
- cm = LengthUnit(unicode='cm', tex='\\mathrm{cm}', factor=0.01, decimals=1)#
Alias for
Units.Length.CENTIMETER
- m = LengthUnit(unicode='m', tex='\\mathrm{m}', factor=1, decimals=3)#
Alias for
Units.Length.METER
- mm = LengthUnit(unicode='mm', tex='\\mathrm{mm}', factor=0.001, decimals=0)#
Alias for
Units.Length.MILLIMETER
- nm = LengthUnit(unicode='nm', tex='\\mathrm{nm}', factor=1e-09, decimals=0)#
Alias for
Units.Length.NANOMETER
- pct = FractionUnit(unicode='%', tex='\\%', factor=0.01, decimals=1)#
Alias for
Units.Fraction.PERCENT
- pct_per_cm2 = SensitivityUnit(unicode='%/cm²', tex='\\%/\\mathrm{cm}^2', factor=100.0, decimals=2)#
- pct_per_mm2 = SensitivityUnit(unicode='%/mm²', tex='\\%/\\mathrm{mm}^2', factor=10000.0, decimals=0)#
- per_m2 = SensitivityUnit(unicode='%/m²', tex='\\%/\\mathrm{m}^2', factor=1, decimals=0)#
Alias for
Units.Sensitivity.PER_METER2
- ul = FractionUnit(unicode='', tex='', factor=1, decimals=3)#
Alias for
Units.Fraction.UNITY
- um = LengthUnit(unicode='μm', tex='\\mathrm{\\mu m}', factor=1e-06, decimals=0)#
Alias for
Units.Length.MICROMETER