Authors of third-party plotting backends should implement a module with a public plot(data, kind, **kwargs)
. The parameter :None:None:`data`
will contain the data structure and can be a Series
or a DataFrame
. For example, for df.plot()
the parameter :None:None:`data`
will contain the DataFrame :None:None:`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 :None:None:`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 :None:None:`Series.plot`
and :None:None:`DataFrame.plot`
)
hist_series and hist_frame (for :None:None:`Series.hist`
and :None:None:`DataFrame.hist`
)
boxplot (:None:None:`pandas.plotting.boxplot(df)`
equivalent to :None:None:`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.
Plotting public API.
Plotting public API.
Authors of third-party plotting backends should implement a module with a public plot(data, kind, **kwargs)
. The parameter :None:None:`data`
will contain the data structure and can be a Series
or a DataFrame
. For example, for df.plot()
the parameter :None:None:`data`
will contain the DataFrame :None:None:`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 :None:None:`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 :None:None:`Series.plot`
and :None:None:`DataFrame.plot`
)
hist_series and hist_frame (for :None:None:`Series.hist`
and :None:None:`DataFrame.hist`
)
boxplot (:None:None:`pandas.plotting.boxplot(df)`
equivalent to :None:None:`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.
Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.
Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)
SVG is more flexible but power hungry; and does not scale well to 50 + nodes.
All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them