Repository: geopandas/geopandas

Issue:
BUG: .explore() shows incorrect colors with scheme = 'UserDefined'

#### Code Sample

```python
import geopandas as gpd
import geodatasets

chicago = gpd.read_file(geodatasets.get_path("geoda.chicago_commpop"))

bins=[25000, 50000, 75000, 100000]
chicago.plot(column='POP2010', scheme='UserDefined', classification_kwds={'bins': bins}, 
             legend=True, legend_kwds={'loc': 'upper left', 'bbox_to_anchor': (1, 1)})
```

```python
chicago.explore(column='POP2010', scheme='UserDefined', classification_kwds={'bins': bins}, tooltip=['POP2010'], legend=True)
```

#### Problem description

When using `scheme='UserDefined'` the colors differ when using `.plot()` and `.explore()`. 
In `.explore()` values between 75000 and 100000 are light green, whereas when using `.plot()` these are yellow. The legends for both visuals are the same though.

The problem seems to be that there are values in the dataset not included in the bins.
If I change this to `bins=[0, 25000, 50000, 75000, 100000]`, then the colors in `.explore()` are correct, but in `.plot()` an extra category is added to the legend, i.e. '-inf, 0.00', even though there is no data in this bin. 

#### Expected Output
I would expect `.plot()` and `.explore()` to show the same colors and legend.

#### Output of ``geopandas.show_versions()``

<details>

SYSTEM INFO
-----------
python     : 3.10.4 (tags/v3.10.4:9d38120, Mar 23 2022, 23:13:41) [MSC v.1929 64 bit (AMD64)]
executable : [c:\Python310\python.exe](file:///C:/Python310/python.exe)
machine    : Windows-10-10.0.19044-SP0

GEOS, GDAL, PROJ INFO
---------------------
GEOS       : None
GEOS lib   : None
GDAL       : 3.5.2
GDAL data dir: [c:\Python310\lib\site-packages\fiona\gdal_data](file:///C:/Python310/lib/site-packages/fiona/gdal_data)
PROJ       : 9.1.0
PROJ data dir: [c:\Python310\lib\site-packages\pyproj\proj_dir\share\proj](file:///C:/Python310/lib/site-packages/pyproj/proj_dir/share/proj)

PYTHON DEPENDENCIES
-------------------
geopandas  : 0.13.2
numpy      : 1.23.1
pandas     : 1.4.3
pyproj     : 3.4.0
shapely    : 1.8.5.post1
fiona      : 1.8.22
geoalchemy2: None
geopy      : 2.3.0
matplotlib : 3.6.3
mapclassify: 2.4.3
pygeos     : None
pyogrio    : None
psycopg2   : None
pyarrow    : 11.0.0
rtree      : 1.0.1

</details>



Discussion:

Resolving patch:
diff --git a/geopandas/explore.py b/geopandas/explore.py
--- a/geopandas/explore.py
+++ b/geopandas/explore.py
@@ -468,7 +468,7 @@ def _colormap_helper(_cmap, n_resample=None, idx=None):
                 color = np.apply_along_axis(
                     colors.to_hex,
                     1,
-                    _colormap_helper(cmap, n_resample=k, idx=binning.yb),
+                    _colormap_helper(cmap, n_resample=binning.k, idx=binning.yb),
                 )
 
             else:


Test patch:
diff --git a/geopandas/tests/test_explore.py b/geopandas/tests/test_explore.py
--- a/geopandas/tests/test_explore.py
+++ b/geopandas/tests/test_explore.py
@@ -8,6 +8,7 @@
 branca = pytest.importorskip("branca")
 matplotlib = pytest.importorskip("matplotlib")
 mapclassify = pytest.importorskip("mapclassify")
+geodatasets = pytest.importorskip("geodatasets")
 
 import matplotlib.cm as cm  # noqa
 import matplotlib.colors as colors  # noqa
@@ -22,6 +23,7 @@ def setup_method(self):
         self.nybb = gpd.read_file(gpd.datasets.get_path("nybb"))
         self.world = gpd.read_file(gpd.datasets.get_path("naturalearth_lowres"))
         self.cities = gpd.read_file(gpd.datasets.get_path("naturalearth_cities"))
+        self.chicago = gpd.read_file(geodatasets.get_path("geoda.chicago_commpop"))
         self.world["range"] = range(len(self.world))
         self.missing = self.world.copy()
         np.random.seed(42)
@@ -173,6 +175,7 @@ def test_choropleth_mapclassify(self):
         assert '"fillColor":"#5ec962"' in out_str
         assert '"fillColor":"#fde725"' in out_str
         assert '"fillColor":"#440154"' in out_str
+
         # custom k
         m = self.world.explore(column="pop_est", scheme="naturalbreaks", k=3)
         out_str = self._fetch_map_string(m)
@@ -180,6 +183,18 @@ def test_choropleth_mapclassify(self):
         assert '"fillColor":"#fde725"' in out_str
         assert '"fillColor":"#440154"' in out_str
 
+        # UserDefined overriding default k
+        m = self.chicago.explore(
+            column="POP2010",
+            scheme="UserDefined",
+            classification_kwds={"bins": [25000, 50000, 75000, 100000]},
+        )
+        out_str = self._fetch_map_string(m)
+        assert '"fillColor":"#fde725"' in out_str
+        assert '"fillColor":"#35b779"' in out_str
+        assert '"fillColor":"#31688e"' in out_str
+        assert '"fillColor":"#440154"' in out_str
+
     def test_categorical(self):
         """Categorical maps"""
         # auto detection