ness of the selected samples when subsamples is not
    `None`. See :term:`Glossary <random_state>` for details.

    .. versionadded:: 0.24

is_categorical : list of (bool,) or list of (bool, bool), default=None
    Whether each target feature in `features` is categorical or not.
    The list should be same size as `features`. If `None`, all features
    are assumed to be continuous.

    .. versionadded:: 1.2

Attributes
----------
bounding_ax_ : matplotlib Axes or None
    If `ax` is an axes or None, the `bounding_ax_` is the axes where the
    grid of partial dependence plots are drawn. If `ax` is a list of axes
    or a numpy array of axes, `bounding_ax_` is None.

axes_ : ndarray of matplotlib Axes
    If `ax` is an axes or None, `axes_[i, j]` is the axes on the i-th row
    and j-th column. If `ax` is a list of axes, `axes_[i]` is the i-th item
    in `ax`. Elements that are None correspond to a nonexisting axes in
    that position.

lines_ : ndarray of matplotlib Artists
    If `ax` is an axes or None, `lines_[i, j]` is the partial dependence
    curve on the i-th row and j-th column. If `ax` is a list of axes,
    `lines_[i]` is the partial dependence curve corresponding to the i-th
    item in `ax`. Elements that are None correspond to a nonexisting axes
    or an axes that does not include a line plot.

deciles_vlines_ : ndarray of matplotlib LineCollection
    If `ax` is an axes or None, `vlines_[i, j]` is the line collection
    representing the x axis deciles of the i-th row and j-th column. If
    `ax` is a list of axes, `vlines_[i]` corresponds to the i-th item in
    `ax`. Elements that are None correspond to a nonexisting axes or an
    axes that does not include a PDP plot.

    .. versionadded:: 0.23

deciles_hlines_ : ndarray of matplotlib LineCollection
    If `ax` is an axes or None, `vlines_[i, j]` is the line collection
    representing the y axis deciles of the i-th row and j-th column. If
    `ax` is a list of axes, `vlines_[i]` corresponds to the i-th item in
    `ax`. Elements that are None correspond to a nonexisting axes or an
    axes that does not include a 2-way plot.

    .. versionadded:: 0.23

contours_ : ndarray of matplotlib Artists
    If `ax` is an axes or None, `contours_[i, j]` is the partial dependence
    plot on the i-th row and j-th column. If `ax` is a list of axes,
    `contours_[i]` is the partial dependence plot corresponding to the i-th
    item in `ax`. Elements that are None correspond to a nonexisting axes
    or an axes that does not include a contour plot.

bars_ : ndarray of matplotlib Artists
    If `ax` is an axes or None, `bars_[i, j]` is the partial dependence bar
    plot on the i-th row and j-th column (for a categorical feature).
    If `ax` is a list of axes, `bars_[i]` is the partial dependence bar
    plot corresponding to the i-th item in `ax`. Elements that are None
    correspond to a nonexisting axes or an axes that does not include a
    bar plot.

    .. versionadded:: 1.2

heatmaps_ : ndarray of matplotlib Artists
    If `ax` is an axes or None, `heatmaps_[i, j]` is the partial dependence
    heatmap on the i-th row and j-th column (for a pair of categorical
    features) . If `ax` is a list of axes, `heatmaps_[i]` is the partial
    dependence heatmap corresponding to the i-th item in `ax`. Elements
    that are None correspond to a nonexisting axes or an axes that does not
    include a heatmap.

    .. versionadded:: 1.2

figure_ : matplotlib Figure
    Figure containing partial dependence plots.

See Also
--------
partial_dependence : Compute Partial Dependence values.
PartialDependenceDisplay.from_estimator : Plot Partial Dependence.

Examples
--------
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import make_friedman1
>>> from sklearn.ensemble import GradientBoostingRegressor
>>> from sklearn.inspection import PartialDependenceDisplay
>>> from sklearn.inspection import partial_dependence
>>> X, y = make_friedman1()
>>> clf = GradientBoostingRegressor(n_estimators=10).fit(X, y)
>>> features, feature_names = [(0,)], [f"Features #{i}" for i in range(X.shape[1])]
>>> deciles = {0: np.linspace(0, 1, num=5)}
>>> pd_results = partial_dependence(
...     clf, X, features=0, kind="average", grid_resolution=5)
>>> display = PartialDependenceDisplay(
...     [pd_results], features=features, feature_names=feature_names,
...     target_idx=0, deciles=deciles
... )
>>> display.plot(pdp_lim={1: (-1.38, 0.66)})
<...>
>>> plt.show()
