|
""" |
|
Plotting public API. |
|
|
|
Authors of third-party plotting backends should implement a module with a |
|
public ``plot(data, kind, **kwargs)``. The parameter `data` will contain |
|
the data structure and can be a `Series` or a `DataFrame`. For example, |
|
for ``df.plot()`` the parameter `data` will contain the DataFrame `df`. |
|
In some cases, the data structure is transformed before being sent to |
|
the backend (see PlotAccessor.__call__ in pandas/plotting/_core.py for |
|
the exact transformations). |
|
|
|
The parameter `kind` will be one of: |
|
|
|
- line |
|
- bar |
|
- barh |
|
- box |
|
- hist |
|
- kde |
|
- area |
|
- pie |
|
- scatter |
|
- hexbin |
|
|
|
See the pandas API reference for documentation on each kind of plot. |
|
|
|
Any other keyword argument is currently assumed to be backend specific, |
|
but some parameters may be unified and added to the signature in the |
|
future (e.g. `title` which should be useful for any backend). |
|
|
|
Currently, all the Matplotlib functions in pandas are accessed through |
|
the selected backend. For example, `pandas.plotting.boxplot` (equivalent |
|
to `DataFrame.boxplot`) is also accessed in the selected backend. This |
|
is expected to change, and the exact API is under discussion. But with |
|
the current version, backends are expected to implement the next functions: |
|
|
|
- plot (describe above, used for `Series.plot` and `DataFrame.plot`) |
|
- hist_series and hist_frame (for `Series.hist` and `DataFrame.hist`) |
|
- boxplot (`pandas.plotting.boxplot(df)` equivalent to `DataFrame.boxplot`) |
|
- boxplot_frame and boxplot_frame_groupby |
|
- register and deregister (register converters for the tick formats) |
|
- Plots not called as `Series` and `DataFrame` methods: |
|
- table |
|
- andrews_curves |
|
- autocorrelation_plot |
|
- bootstrap_plot |
|
- lag_plot |
|
- parallel_coordinates |
|
- radviz |
|
- scatter_matrix |
|
|
|
Use the code in pandas/plotting/_matplotib.py and |
|
https://github.com/pyviz/hvplot as a reference on how to write a backend. |
|
|
|
For the discussion about the API see |
|
https://github.com/pandas-dev/pandas/issues/26747. |
|
""" |
|
from pandas.plotting._core import ( |
|
PlotAccessor, |
|
boxplot, |
|
boxplot_frame, |
|
boxplot_frame_groupby, |
|
hist_frame, |
|
hist_series, |
|
) |
|
from pandas.plotting._misc import ( |
|
andrews_curves, |
|
autocorrelation_plot, |
|
bootstrap_plot, |
|
deregister as deregister_matplotlib_converters, |
|
lag_plot, |
|
parallel_coordinates, |
|
plot_params, |
|
radviz, |
|
register as register_matplotlib_converters, |
|
scatter_matrix, |
|
table, |
|
) |
|
|
|
__all__ = [ |
|
"PlotAccessor", |
|
"boxplot", |
|
"boxplot_frame", |
|
"boxplot_frame_groupby", |
|
"hist_frame", |
|
"hist_series", |
|
"scatter_matrix", |
|
"radviz", |
|
"andrews_curves", |
|
"bootstrap_plot", |
|
"parallel_coordinates", |
|
"lag_plot", |
|
"autocorrelation_plot", |
|
"table", |
|
"plot_params", |
|
"register_matplotlib_converters", |
|
"deregister_matplotlib_converters", |
|
] |
|
|