94 lines
2.0 KiB
Python
94 lines
2.0 KiB
Python
|
from __future__ import annotations
|
||
|
|
||
|
from typing import TYPE_CHECKING
|
||
|
|
||
|
from pandas.plotting._matplotlib.boxplot import (
|
||
|
BoxPlot,
|
||
|
boxplot,
|
||
|
boxplot_frame,
|
||
|
boxplot_frame_groupby,
|
||
|
)
|
||
|
from pandas.plotting._matplotlib.converter import (
|
||
|
deregister,
|
||
|
register,
|
||
|
)
|
||
|
from pandas.plotting._matplotlib.core import (
|
||
|
AreaPlot,
|
||
|
BarhPlot,
|
||
|
BarPlot,
|
||
|
HexBinPlot,
|
||
|
LinePlot,
|
||
|
PiePlot,
|
||
|
ScatterPlot,
|
||
|
)
|
||
|
from pandas.plotting._matplotlib.hist import (
|
||
|
HistPlot,
|
||
|
KdePlot,
|
||
|
hist_frame,
|
||
|
hist_series,
|
||
|
)
|
||
|
from pandas.plotting._matplotlib.misc import (
|
||
|
andrews_curves,
|
||
|
autocorrelation_plot,
|
||
|
bootstrap_plot,
|
||
|
lag_plot,
|
||
|
parallel_coordinates,
|
||
|
radviz,
|
||
|
scatter_matrix,
|
||
|
)
|
||
|
from pandas.plotting._matplotlib.tools import table
|
||
|
|
||
|
if TYPE_CHECKING:
|
||
|
from pandas.plotting._matplotlib.core import MPLPlot
|
||
|
|
||
|
PLOT_CLASSES: dict[str, type[MPLPlot]] = {
|
||
|
"line": LinePlot,
|
||
|
"bar": BarPlot,
|
||
|
"barh": BarhPlot,
|
||
|
"box": BoxPlot,
|
||
|
"hist": HistPlot,
|
||
|
"kde": KdePlot,
|
||
|
"area": AreaPlot,
|
||
|
"pie": PiePlot,
|
||
|
"scatter": ScatterPlot,
|
||
|
"hexbin": HexBinPlot,
|
||
|
}
|
||
|
|
||
|
|
||
|
def plot(data, kind, **kwargs):
|
||
|
# Importing pyplot at the top of the file (before the converters are
|
||
|
# registered) causes problems in matplotlib 2 (converters seem to not
|
||
|
# work)
|
||
|
import matplotlib.pyplot as plt
|
||
|
|
||
|
if kwargs.pop("reuse_plot", False):
|
||
|
ax = kwargs.get("ax")
|
||
|
if ax is None and len(plt.get_fignums()) > 0:
|
||
|
with plt.rc_context():
|
||
|
ax = plt.gca()
|
||
|
kwargs["ax"] = getattr(ax, "left_ax", ax)
|
||
|
plot_obj = PLOT_CLASSES[kind](data, **kwargs)
|
||
|
plot_obj.generate()
|
||
|
plot_obj.draw()
|
||
|
return plot_obj.result
|
||
|
|
||
|
|
||
|
__all__ = [
|
||
|
"plot",
|
||
|
"hist_series",
|
||
|
"hist_frame",
|
||
|
"boxplot",
|
||
|
"boxplot_frame",
|
||
|
"boxplot_frame_groupby",
|
||
|
"table",
|
||
|
"andrews_curves",
|
||
|
"autocorrelation_plot",
|
||
|
"bootstrap_plot",
|
||
|
"lag_plot",
|
||
|
"parallel_coordinates",
|
||
|
"radviz",
|
||
|
"scatter_matrix",
|
||
|
"register",
|
||
|
"deregister",
|
||
|
]
|