Open
Description
The current plotting API feels inconsistent and I think it's the one we have for historical reasons, and not the one we want. I propose the next changes:
- Leave the current API based on the
.plot
accessor as is (e.g.Series.plot.hist
,Series.plot(kind='box')
). In the future we should consider two things:
- Whether we want backend to be able to add plots that we don't define
- Move all the matplotlib specific parameters to
**kwargs
- Remove all duplicate functions:
- hist_series (
Series.hist
->Series.plot.hist
) - hist_frame (
DataFrame.hist
->DataFrame.plot.hist
) - boxplot (
pandas.plotting.boxplot
->DataFrame.plot.box
) - boxplot_frame (
DataFrame.boxplot
->DataFrame.plot.box
)
-
Move the matplotlib backend to a separate project (
pandas.plotting._matplotlib
->pandas_matplotlib
) -
Move to the matplotlib backend the non-accessor plotting functions:
- andrews_curves (
pandas.plotting.andrews_curves
->pandas_matplotlib.andrews_curves
) - autocorrelation_plot
- bootstrap_plot
- lag_plot
- parallel_coordinates
- radviz
- scatter_matrix
- table
- Move to the matplotlib backend register/unregister of the converters (pandas.plotting.register
->
pandas_matplotlib.register`)
CC: @pandas-dev/pandas-core @jakevdp