Source code for ablator.analysis.plot.num_plot
import logging
import pandas as pd
import seaborn as sns
from matplotlib.axes import Axes
from matplotlib.figure import Figure
from ablator.analysis.plot import Plot
logger = logging.getLogger(__name__)
[docs]class Numerical(Plot):
DATA_TYPE = "numerical"
[docs]class LinearPlot(Numerical):
def _make(
self,
scatter_plot: bool = True,
polynomial_fit: int | None = None,
**kwargs,
) -> tuple[Figure, Axes]:
if not scatter_plot and polynomial_fit is None:
raise ValueError(
"Must specify `polynomial_fit` when setting `scatter_plot` to False."
)
attributes = self.attributes.values
metric = self.metric.values
df = pd.concat(
[
pd.DataFrame(attributes, columns=["x"]),
pd.DataFrame(metric, columns=["y"]),
],
axis=1,
)
g = sns.lmplot(df, x="x", y="y", markers=".", scatter_kws={"alpha": 0.3})
self.ax = g.ax
self.figure = g.ax.figure
return self.figure, self.ax
def _parse_legend(self, ax):
pass