codecov[bot]: # [Codecov](https://codecov.io/gh/geopandas/geopandas/pull/1225?src=pr&el=h1) Report
> Merging [#1225](https://codecov.io/gh/geopandas/geopandas/pull/1225?src=pr&el=desc) into [master](https://codecov.io/gh/geopandas/geopandas/commit/6ac19052c811b39fea88b40625c69246f733709d?src=pr&el=desc) will **decrease** coverage by `0.11%`.
> The diff coverage is `100%`.

[![Impacted file tree graph](https://codecov.io/gh/geopandas/geopandas/pull/1225/graphs/tree.svg?width=650&token=6TOPMcCBhB&height=150&src=pr)](https://codecov.io/gh/geopandas/geopandas/pull/1225?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master    #1225      +/-   ##
==========================================
- Coverage   90.05%   89.94%   -0.12%     
==========================================
  Files          21       21              
  Lines        2082     2088       +6     
==========================================
+ Hits         1875     1878       +3     
- Misses        207      210       +3
```


| [Impacted Files](https://codecov.io/gh/geopandas/geopandas/pull/1225?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [geopandas/plotting.py](https://codecov.io/gh/geopandas/geopandas/pull/1225/diff?src=pr&el=tree#diff-Z2VvcGFuZGFzL3Bsb3R0aW5nLnB5) | `92.06% <100%> (-0.54%)` | :arrow_down: |
| [geopandas/array.py](https://codecov.io/gh/geopandas/geopandas/pull/1225/diff?src=pr&el=tree#diff-Z2VvcGFuZGFzL2FycmF5LnB5) | `93.76% <0%> (-0.23%)` | :arrow_down: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/geopandas/geopandas/pull/1225?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/geopandas/geopandas/pull/1225?src=pr&el=footer). Last update [6ac1905...97101d3](https://codecov.io/gh/geopandas/geopandas/pull/1225?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

martinfleis: @jorisvandenbossche I have made changes based on the review, apart from import/GeometryArray/GeoSeries part (see above).
diff --git a/geopandas/plotting.py b/geopandas/plotting.py
index c86509aa..f915a569 100644
--- a/geopandas/plotting.py
+++ b/geopandas/plotting.py
@@ -3,45 +3,41 @@ import warnings
 import numpy as np
 import pandas as pd
 
+import geopandas
 
-def _flatten_multi_geoms(geoms, colors=None):
+
+def _flatten_multi_geoms(geoms, prefix="Multi"):
     """
-    Returns Series like geoms and colors, except that any Multi geometries
-    are split into their components and colors are repeated for all component
-    in the same Multi geometry.  Maintains 1:1 matching of geometry to color.
-    Passing `color` is optional, and when no `color` is passed a list of None
-    values is returned as `component_colors`.
+    Returns Series like geoms and index, except that any Multi geometries
+    are split into their components and indices are repeated for all component
+    in the same Multi geometry.  Maintains 1:1 matching of geometry to value.
 
-    "Colors" are treated opaquely and so can actually contain any values.
+    Prefix specifies type of geometry to be flatten. 'Multi' for MultiPoint and similar,
+    "Geom" for GeometryCollection.
 
     Returns
     -------
 
     components : list of geometry
 
-    component_colors : list of whatever type `colors` contains
+    component_index : index array
+        indices are repeated for all components in the same Multi geometry
     """
-    if colors is None:
-        colors = [None] * len(geoms)
-
-    components, component_colors = [], []
+    components, component_index = [], []
 
-    if not geoms.geom_type.str.startswith("Multi").any():
-        return geoms, colors
+    if not geoms.geom_type.str.startswith(prefix).any():
+        return geoms, np.arange(len(geoms))
 
-    # precondition, so zip can't short-circuit
-    assert len(geoms) == len(colors)
-    for geom, color in zip(geoms, colors):
-        if geom.type.startswith("Multi"):
+    for ix, geom in enumerate(geoms):
+        if geom.type.startswith(prefix):
             for poly in geom:
                 components.append(poly)
-                # repeat same color for all components
-                component_colors.append(color)
+                component_index.append(ix)
         else:
             components.append(geom)
-            component_colors.append(color)
+            component_index.append(ix)
 
-    return components, component_colors
+    return components, np.array(component_index)
 
 
 def plot_polygon_collection(
@@ -92,7 +88,7 @@ def plot_polygon_collection(
     from matplotlib.collections import PatchCollection
     from matplotlib.colors import is_color_like
 
-    geoms, multiindex = _flatten_multi_geoms(geoms, range(len(geoms)))
+    geoms, multiindex = _flatten_multi_geoms(geoms)
     if values is not None:
         values = np.take(values, multiindex, axis=0)
 
@@ -165,7 +161,7 @@ def plot_linestring_collection(
     from matplotlib.collections import LineCollection
     from matplotlib.colors import is_color_like
 
-    geoms, multiindex = _flatten_multi_geoms(geoms, range(len(geoms)))
+    geoms, multiindex = _flatten_multi_geoms(geoms)
     if values is not None:
         values = np.take(values, multiindex, axis=0)
 
@@ -236,7 +232,7 @@ def plot_point_collection(
     if values is not None and color is not None:
         raise ValueError("Can only specify one of 'values' and 'color' kwargs")
 
-    geoms, multiindex = _flatten_multi_geoms(geoms, range(len(geoms)))
+    geoms, multiindex = _flatten_multi_geoms(geoms)
     if values is not None:
         values = np.take(values, multiindex, axis=0)
 
@@ -349,16 +345,22 @@ def plot_series(s, cmap=None, color=None, ax=None, figsize=None, **style_kwds):
         style_kwds["vmin"] = style_kwds.get("vmin", values.min())
         style_kwds["vmax"] = style_kwds.get("vmax", values.max())
 
-    geom_types = s.geometry.type
+    # decompose GeometryCollections
+    geoms, multiindex = _flatten_multi_geoms(s.geometry, prefix="Geom")
+    values = np.take(values, multiindex, axis=0) if cmap else None
+    expl_series = geopandas.GeoSeries(geoms)
+
+    geom_types = expl_series.type
     poly_idx = np.asarray((geom_types == "Polygon") | (geom_types == "MultiPolygon"))
     line_idx = np.asarray(
-        (geom_types == "LineString") | (geom_types == "MultiLineString")
+        (geom_types == "LineString")
+        | (geom_types == "MultiLineString")
+        | (geom_types == "LinearRing")
     )
     point_idx = np.asarray((geom_types == "Point") | (geom_types == "MultiPoint"))
 
     # plot all Polygons and all MultiPolygon components in the same collection
-    polys = s.geometry[poly_idx]
-
+    polys = expl_series[poly_idx]
     if not polys.empty:
         # color overrides both face and edgecolor. As we want people to be
         # able to use edgecolor as well, pass color to facecolor
@@ -372,7 +374,7 @@ def plot_series(s, cmap=None, color=None, ax=None, figsize=None, **style_kwds):
         )
 
     # plot all LineStrings and MultiLineString components in same collection
-    lines = s.geometry[line_idx]
+    lines = expl_series[line_idx]
     if not lines.empty:
         values_ = values[line_idx] if cmap else None
         plot_linestring_collection(
@@ -380,7 +382,7 @@ def plot_series(s, cmap=None, color=None, ax=None, figsize=None, **style_kwds):
         )
 
     # plot all Points in the same collection
-    points = s.geometry[point_idx]
+    points = expl_series[point_idx]
     if not points.empty:
         values_ = values[point_idx] if cmap else None
         plot_point_collection(ax, points, values_, color=color, cmap=cmap, **style_kwds)
@@ -595,15 +597,23 @@ def plot_dataframe(
     mn = values[~np.isnan(values)].min() if vmin is None else vmin
     mx = values[~np.isnan(values)].max() if vmax is None else vmax
 
-    geom_types = df.geometry.type
+    # decompose GeometryCollections
+    geoms, multiindex = _flatten_multi_geoms(df.geometry, prefix="Geom")
+    values = np.take(values, multiindex, axis=0)
+    nan_idx = np.take(nan_idx, multiindex, axis=0)
+    expl_series = geopandas.GeoSeries(geoms)
+
+    geom_types = expl_series.type
     poly_idx = np.asarray((geom_types == "Polygon") | (geom_types == "MultiPolygon"))
     line_idx = np.asarray(
-        (geom_types == "LineString") | (geom_types == "MultiLineString")
+        (geom_types == "LineString")
+        | (geom_types == "MultiLineString")
+        | (geom_types == "LinearRing")
     )
     point_idx = np.asarray((geom_types == "Point") | (geom_types == "MultiPoint"))
 
     # plot all Polygons and all MultiPolygon components in the same collection
-    polys = df.geometry[poly_idx & np.invert(nan_idx)]
+    polys = expl_series[poly_idx & np.invert(nan_idx)]
     subset = values[poly_idx & np.invert(nan_idx)]
     if not polys.empty:
         plot_polygon_collection(
@@ -611,7 +621,7 @@ def plot_dataframe(
         )
 
     # plot all LineStrings and MultiLineString components in same collection
-    lines = df.geometry[line_idx & np.invert(nan_idx)]
+    lines = expl_series[line_idx & np.invert(nan_idx)]
     subset = values[line_idx & np.invert(nan_idx)]
     if not lines.empty:
         plot_linestring_collection(
@@ -619,10 +629,11 @@ def plot_dataframe(
         )
 
     # plot all Points in the same collection
-    points = df.geometry[point_idx & np.invert(nan_idx)]
+    points = expl_series[point_idx & np.invert(nan_idx)]
     subset = values[point_idx & np.invert(nan_idx)]
     if not points.empty:
         if isinstance(markersize, np.ndarray):
+            markersize = np.take(markersize, multiindex, axis=0)
             markersize = markersize[point_idx & np.invert(nan_idx)]
         plot_point_collection(
             ax,
@@ -643,7 +654,7 @@ def plot_dataframe(
         merged_kwds = style_kwds.copy()
         merged_kwds.update(missing_kwds)
 
-        plot_series(df.geometry[nan_idx], ax=ax, **merged_kwds)
+        plot_series(expl_series[nan_idx], ax=ax, **merged_kwds)
 
     if legend and not color:
 

geopandas fails to plot GeometryCollection
It looks like geometry collections are not supported by the geopandas `plot` feature. The following will generate an empty plot.
```
import shapely
import geopandas
a = shapely.geometry.LineString([(0, 0), (1, 1), (1,2), (2,2)])
b = shapely.geometry.LineString([(0, 0), (1, 1), (2,1), (2,2)])
x = a.intersection(b)
gdf = geopandas.GeoDataFrame(geometry=[x])
gdf.plot();
```

Am I doing something wrong or is this a bug ? If so how to fix or workaround? Thanks.
diff --git a/geopandas/tests/test_plotting.py b/geopandas/tests/test_plotting.py
index a6b66201..306e3b6c 100644
--- a/geopandas/tests/test_plotting.py
+++ b/geopandas/tests/test_plotting.py
@@ -8,9 +8,11 @@ from shapely.geometry import (
     MultiPolygon,
     Polygon,
     LineString,
+    LinearRing,
     Point,
     MultiPoint,
     MultiLineString,
+    GeometryCollection,
 )
 
 
@@ -294,6 +296,12 @@ class TestLineStringPlotting:
             {"geometry": [multiline1, multiline2], "values": [0, 1]}
         )
 
+        self.linearrings = GeoSeries(
+            [LinearRing([(0, i), (4, i + 0.5), (9, i)]) for i in range(self.N)],
+            index=list("ABCDEFGHIJ"),
+        )
+        self.df3 = GeoDataFrame({"geometry": self.linearrings, "values": values})
+
     def test_single_color(self):
 
         ax = self.lines.plot(color="green")
@@ -302,6 +310,12 @@ class TestLineStringPlotting:
         ax = self.df.plot(color="green")
         _check_colors(self.N, ax.collections[0].get_colors(), ["green"] * self.N)
 
+        ax = self.linearrings.plot(color="green")
+        _check_colors(self.N, ax.collections[0].get_colors(), ["green"] * self.N)
+
+        ax = self.df3.plot(color="green")
+        _check_colors(self.N, ax.collections[0].get_colors(), ["green"] * self.N)
+
         # check rgba tuple GH1178
         ax = self.df.plot(color=(0.5, 0.5, 0.5, 0.5))
         _check_colors(
@@ -552,6 +566,37 @@ class TestPolygonZPlotting:
         self.df.plot()
 
 
+class TestGeometryCollectionPlotting:
+    def setup_method(self):
+        coll1 = GeometryCollection(
+            [
+                Polygon([(1, 0), (2, 0), (2, 1)]),
+                MultiLineString([((0.5, 0.5), (1, 1)), ((1, 0.5), (1.5, 1))]),
+            ]
+        )
+        coll2 = GeometryCollection(
+            [Point(0.75, 0.25), Polygon([(2, 2), (3, 2), (2, 3)])]
+        )
+
+        self.series = GeoSeries([coll1, coll2])
+        self.df = GeoDataFrame({"geometry": self.series, "values": [1, 2]})
+
+    def test_colors(self):
+        # default uniform color
+        ax = self.series.plot()
+        _check_colors(1, ax.collections[0].get_facecolors(), [MPL_DFT_COLOR])  # poly
+        _check_colors(2, ax.collections[1].get_edgecolors(), [MPL_DFT_COLOR])  # line
+        _check_colors(2, ax.collections[2].get_facecolors(), [MPL_DFT_COLOR])  # point
+
+    def test_values(self):
+        ax = self.df.plot("values")
+        cmap = plt.get_cmap()
+        exp_colors = cmap(np.arange(2) / 1)
+        _check_colors(1, ax.collections[0].get_facecolors(), exp_colors)  # poly
+        _check_colors(2, ax.collections[1].get_edgecolors(), [exp_colors[0]])  # line
+        _check_colors(2, ax.collections[2].get_facecolors(), [exp_colors[1]])  # point
+
+
 class TestNonuniformGeometryPlotting:
     def setup_method(self):
         pytest.importorskip("matplotlib", "1.5.0")

doc/environment.yml
pip install -e .[dev]
parse_log_pytest
environment.yml
pytest
apt-get update apt-get install -y gcc
3.7
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
affine @ file:///home/conda/feedstock_root/build_artifacts/affine_1674245120525/work
alabaster @ file:///home/conda/feedstock_root/build_artifacts/alabaster_1673645646525/work
attrs @ file:///home/conda/feedstock_root/build_artifacts/attrs_1722977137225/work
Babel @ file:///home/conda/feedstock_root/build_artifacts/babel_1702422572539/work
backcall @ file:///home/conda/feedstock_root/build_artifacts/backcall_1592338393461/work
backports.functools-lru-cache @ file:///home/conda/feedstock_root/build_artifacts/backports.functools_lru_cache_1702571698061/work
beautifulsoup4 @ file:///home/conda/feedstock_root/build_artifacts/beautifulsoup4_1705564648255/work
Brotli @ file:///home/conda/feedstock_root/build_artifacts/brotli-split_1648883617327/work
Cartopy==0.17.0
certifi @ file:///home/conda/feedstock_root/build_artifacts/certifi_1725278078093/work/certifi
charset-normalizer @ file:///home/conda/feedstock_root/build_artifacts/charset-normalizer_1728479282467/work
click==7.1.2
click-plugins==1.1.1
cligj @ file:///home/conda/feedstock_root/build_artifacts/cligj_1633637764473/work
colorama @ file:///home/conda/feedstock_root/build_artifacts/colorama_1666700638685/work
contextily==1.0rc2
cycler @ file:///home/conda/feedstock_root/build_artifacts/cycler_1635519461629/work
dataclasses @ file:///home/conda/feedstock_root/build_artifacts/dataclasses_1628958434797/work
decorator @ file:///home/conda/feedstock_root/build_artifacts/decorator_1641555617451/work
Deprecated @ file:///home/conda/feedstock_root/build_artifacts/deprecated_1731836826792/work
descartes==1.1.0
doc2dash==2.3.0
docutils @ file:///home/conda/feedstock_root/build_artifacts/docutils_1610127754852/work
exceptiongroup==1.2.2
Fiona==1.8.6
GDAL==2.4.1
geographiclib @ file:///home/conda/feedstock_root/build_artifacts/geographiclib_1624386157733/work
-e git+https://github.com/geopandas/geopandas.git@22b5a0dc23be8876a3270d0c009db5bd765fabf3#egg=geopandas
geoplot==0.4.0
geopy==1.20.0
idna @ file:///home/conda/feedstock_root/build_artifacts/idna_1726459485162/work
imagesize @ file:///home/conda/feedstock_root/build_artifacts/imagesize_1656939531508/work
importlib-metadata==6.7.0
iniconfig==2.0.0
ipython==7.7.0
jedi @ file:///home/conda/feedstock_root/build_artifacts/jedi_1635823950375/work
Jinja2==2.10.3
joblib @ file:///home/conda/feedstock_root/build_artifacts/joblib_1691577114857/work
kiwisolver @ file:///home/conda/feedstock_root/build_artifacts/kiwisolver_1648854392523/work
lxml @ file:///home/conda/feedstock_root/build_artifacts/lxml_1649697663207/work
mapclassify==2.1.1
MarkupSafe @ file:///home/conda/feedstock_root/build_artifacts/markupsafe_1610127564475/work
matplotlib==3.1.1
mercantile @ file:///home/conda/feedstock_root/build_artifacts/mercantile_1619028378680/work
mock==3.0.5
munch==2.5.0
numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1649806299270/work
numpydoc==0.9.1
olefile @ file:///home/conda/feedstock_root/build_artifacts/olefile_1701735466804/work
OWSLib @ file:///home/conda/feedstock_root/build_artifacts/owslib_1684759366270/work
packaging @ file:///home/conda/feedstock_root/build_artifacts/packaging_1696202382185/work
pandas==0.25.0
parso @ file:///home/conda/feedstock_root/build_artifacts/parso_1595548966091/work
patsy @ file:///home/conda/feedstock_root/build_artifacts/patsy_1704469236901/work
pexpect @ file:///home/conda/feedstock_root/build_artifacts/pexpect_1706113125309/work
pickleshare @ file:///home/conda/feedstock_root/build_artifacts/pickleshare_1602536217715/work
Pillow==6.1.0
pluggy==1.2.0
prompt_toolkit @ file:///home/conda/feedstock_root/build_artifacts/prompt-toolkit_1727341649933/work
ptyprocess @ file:///home/conda/feedstock_root/build_artifacts/ptyprocess_1609419310487/work/dist/ptyprocess-0.7.0-py2.py3-none-any.whl
pyepsg==0.4.0
Pygments @ file:///home/conda/feedstock_root/build_artifacts/pygments_1700607939962/work
pykdtree @ file:///home/conda/feedstock_root/build_artifacts/pykdtree_1649628951885/work
pyparsing @ file:///home/conda/feedstock_root/build_artifacts/pyparsing_1724616129934/work
pyproj==1.9.6
pyshp @ file:///home/conda/feedstock_root/build_artifacts/pyshp_1659002966020/work
PySocks @ file:///home/conda/feedstock_root/build_artifacts/pysocks_1648857264451/work
pytest==7.4.4
python-dateutil @ file:///home/conda/feedstock_root/build_artifacts/python-dateutil_1709299778482/work
pytz @ file:///home/conda/feedstock_root/build_artifacts/pytz_1726055524169/work
PyYAML @ file:///home/conda/feedstock_root/build_artifacts/pyyaml_1648757092905/work
rasterio==1.0.24
requests @ file:///home/conda/feedstock_root/build_artifacts/requests_1716354486713/work
Rtree==0.8.3
scikit-learn @ file:///home/conda/feedstock_root/build_artifacts/scikit-learn_1640464152916/work
scipy @ file:///home/conda/feedstock_root/build_artifacts/scipy_1604304773994/work
seaborn @ file:///home/conda/feedstock_root/build_artifacts/seaborn-split_1672497695270/work
Shapely==1.6.4.post2
six @ file:///home/conda/feedstock_root/build_artifacts/six_1620240208055/work
snowballstemmer @ file:///home/conda/feedstock_root/build_artifacts/snowballstemmer_1637143057757/work
snuggs @ file:///home/conda/feedstock_root/build_artifacts/snuggs_1722610615774/work
soupsieve @ file:///home/conda/feedstock_root/build_artifacts/soupsieve_1658207591808/work
Sphinx==2.1.2
sphinx-gallery==0.4.0
sphinx-rtd-theme==0.4.3
sphinxcontrib-applehelp @ file:///home/conda/feedstock_root/build_artifacts/sphinxcontrib-applehelp_1674487779667/work
sphinxcontrib-devhelp==1.0.2
sphinxcontrib-htmlhelp @ file:///home/conda/feedstock_root/build_artifacts/sphinxcontrib-htmlhelp_1675256494457/work
sphinxcontrib-jsmath @ file:///home/conda/feedstock_root/build_artifacts/sphinxcontrib-jsmath_1691604704163/work
sphinxcontrib-qthelp==1.0.3
sphinxcontrib-serializinghtml @ file:///home/conda/feedstock_root/build_artifacts/sphinxcontrib-serializinghtml_1649380998999/work
statsmodels @ file:///home/conda/feedstock_root/build_artifacts/statsmodels_1630699917471/work
threadpoolctl @ file:///home/conda/feedstock_root/build_artifacts/threadpoolctl_1643647933166/work
tomli==2.0.1
tornado @ file:///home/conda/feedstock_root/build_artifacts/tornado_1648827244717/work
traitlets @ file:///home/conda/feedstock_root/build_artifacts/traitlets_1675110562325/work
typing_extensions @ file:///home/conda/feedstock_root/build_artifacts/typing_extensions_1688315532570/work
urllib3 @ file:///home/conda/feedstock_root/build_artifacts/urllib3_1708239446578/work
wcwidth @ file:///home/conda/feedstock_root/build_artifacts/wcwidth_1699959196938/work
wrapt @ file:///home/conda/feedstock_root/build_artifacts/wrapt_1651495229974/work
zipp==3.15.0
zope.interface @ file:///home/conda/feedstock_root/build_artifacts/zope.interface_1649175683394/work

name: geopandas
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - affine=2.4.0=pyhd8ed1ab_0
  - alabaster=0.7.13=pyhd8ed1ab_0
  - attrs=24.2.0=pyh71513ae_0
  - babel=2.14.0=pyhd8ed1ab_0
  - backcall=0.2.0=pyh9f0ad1d_0
  - backports=1.0=pyhd8ed1ab_4
  - backports.functools_lru_cache=2.0.0=pyhd8ed1ab_0
  - beautifulsoup4=4.12.3=pyha770c72_0
  - boost-cpp=1.70.0=ha2d47e9_1
  - brotli-python=1.0.9=py37hd23a5d3_7
  - bzip2=1.0.8=h7f98852_4
  - ca-certificates=2025.2.25=h06a4308_0
  - cairo=1.16.0=h18b612c_1001
  - cartopy=0.17.0=py37hd759880_1006
  - certifi=2024.8.30=pyhd8ed1ab_0
  - cfitsio=3.470=hb60a0a2_2
  - charset-normalizer=3.4.0=pyhd8ed1ab_0
  - click=7.1.2=pyh9f0ad1d_0
  - click-plugins=1.1.1=py_0
  - cligj=0.7.2=pyhd8ed1ab_1
  - colorama=0.4.6=pyhd8ed1ab_0
  - contextily=1.0rc2=py_1
  - curl=7.68.0=hf8cf82a_0
  - cycler=0.11.0=pyhd8ed1ab_0
  - dataclasses=0.8=pyhc8e2a94_3
  - dbus=1.13.6=h48d8840_2
  - decorator=5.1.1=pyhd8ed1ab_0
  - deprecated=1.2.15=pyhff2d567_0
  - descartes=1.1.0=py_4
  - doc2dash=2.3.0=py_0
  - docutils=0.16=py37h89c1867_3
  - expat=2.4.8=h27087fc_0
  - fiona=1.8.6=py37hf242f0b_3
  - fontconfig=2.14.0=h8e229c2_0
  - freetype=2.10.4=h0708190_1
  - freexl=1.0.6=h7f98852_0
  - gdal=2.4.1=py37h5f563d9_10
  - geographiclib=1.52=pyhd8ed1ab_0
  - geoplot=0.4.0=py_1
  - geopy=1.20.0=py_0
  - geos=3.7.2=he1b5a44_2
  - geotiff=1.4.3=hb6868eb_1001
  - gettext=0.19.8.1=h73d1719_1008
  - giflib=5.1.7=h516909a_1
  - glib=2.68.4=h9c3ff4c_1
  - glib-tools=2.68.4=h9c3ff4c_1
  - gst-plugins-base=1.14.0=hbbd80ab_1
  - gstreamer=1.14.0=h28cd5cc_2
  - hdf4=4.2.15=h10796ff_3
  - hdf5=1.10.4=nompi_h3c11f04_1106
  - icu=58.2=hf484d3e_1000
  - idna=3.10=pyhd8ed1ab_0
  - imagesize=1.4.1=pyhd8ed1ab_0
  - ipython=7.7.0=py37h5ca1d4c_0
  - jbig=2.1=h7f98852_2003
  - jedi=0.17.2=py37h89c1867_2
  - jinja2=2.10.3=py_0
  - joblib=1.3.2=pyhd8ed1ab_0
  - jpeg=9e=h166bdaf_1
  - json-c=0.13.1=hbfbb72e_1002
  - kealib=1.4.10=h1978553_1003
  - kiwisolver=1.4.2=py37h7cecad7_1
  - krb5=1.16.4=h2fd8d38_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - lerc=2.2.1=h9c3ff4c_0
  - libblas=3.9.0=13_linux64_openblas
  - libcblas=3.9.0=13_linux64_openblas
  - libcurl=7.68.0=hda55be3_0
  - libdap4=3.20.4=hd3bb157_0
  - libdeflate=1.7=h7f98852_5
  - libedit=3.1.20191231=he28a2e2_2
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgdal=2.4.1=hc4f5fd6_10
  - libgfortran-ng=7.5.0=h14aa051_20
  - libgfortran4=7.5.0=h14aa051_20
  - libglib=2.68.4=h174f98d_1
  - libgomp=11.2.0=h1234567_1
  - libiconv=1.17=h166bdaf_0
  - libkml=1.3.0=h4fcabce_1010
  - liblapack=3.9.0=13_linux64_openblas
  - libnetcdf=4.6.2=hbdf4f91_1001
  - libopenblas=0.3.18=hf726d26_0
  - libpng=1.6.37=h21135ba_2
  - libpq=11.5=hd9ab2ff_2
  - libspatialindex=1.9.3=h9c3ff4c_4
  - libspatialite=4.3.0a=h79dc798_1030
  - libssh2=1.10.0=ha56f1ee_2
  - libstdcxx-ng=11.2.0=h1234567_1
  - libtiff=4.3.0=hf544144_1
  - libuuid=2.32.1=h7f98852_1000
  - libwebp-base=1.2.2=h7f98852_1
  - libxcb=1.13=h7f98852_1004
  - libxml2=2.9.14=h74e7548_0
  - libxslt=1.1.35=h4e12654_0
  - lxml=4.8.0=py37h540881e_3
  - lz4-c=1.9.3=h9c3ff4c_1
  - mapclassify=2.1.1=py_0
  - markupsafe=1.1.1=py37h5e8e339_3
  - matplotlib=3.1.1=py37_0
  - matplotlib-base=3.1.1=py37hfd891ef_0
  - mercantile=1.2.1=pyhd8ed1ab_0
  - mock=3.0.5=py37hc8dfbb8_1
  - munch=2.5.0=py_0
  - ncurses=6.4=h6a678d5_0
  - numpy=1.21.6=py37h976b520_0
  - numpydoc=0.9.1=py_0
  - olefile=0.47=pyhd8ed1ab_0
  - openjpeg=2.3.1=hf7af979_3
  - openssl=1.1.1w=h7f8727e_0
  - owslib=0.29.2=pyhd8ed1ab_0
  - packaging=23.2=pyhd8ed1ab_0
  - pandas=0.25.0=py37he6710b0_0
  - parso=0.7.1=pyh9f0ad1d_0
  - patsy=0.5.6=pyhd8ed1ab_0
  - pcre=8.45=h9c3ff4c_0
  - pexpect=4.9.0=pyhd8ed1ab_0
  - pickleshare=0.7.5=py_1003
  - pillow=6.1.0=py37h6b7be26_1
  - pip=22.3.1=py37h06a4308_0
  - pixman=0.38.0=h516909a_1003
  - poppler=0.67.0=h14e79db_8
  - poppler-data=0.4.12=hd8ed1ab_0
  - postgresql=11.5=hc63931a_2
  - proj4=5.2.0=he1b5a44_1006
  - prompt-toolkit=3.0.48=pyha770c72_0
  - prompt_toolkit=3.0.48=hd8ed1ab_1
  - pthread-stubs=0.4=h36c2ea0_1001
  - ptyprocess=0.7.0=pyhd3deb0d_0
  - pyepsg=0.4.0=py_0
  - pygments=2.17.2=pyhd8ed1ab_0
  - pykdtree=1.3.4=py37hda87dfa_3
  - pyparsing=3.1.4=pyhd8ed1ab_0
  - pyproj=1.9.6=py37h516909a_1002
  - pyqt=5.9.2=py37hcca6a23_4
  - pyshp=2.3.1=pyhd8ed1ab_0
  - pysocks=1.7.1=py37h89c1867_5
  - python=3.7.16=h7a1cb2a_0
  - python-dateutil=2.9.0=pyhd8ed1ab_0
  - python_abi=3.7=2_cp37m
  - pytz=2024.2=pyhd8ed1ab_0
  - pyyaml=6.0=py37h540881e_4
  - qt=5.9.7=h5867ecd_1
  - rasterio=1.0.24=py37hdff7cfa_0
  - readline=8.2=h5eee18b_0
  - requests=2.32.2=pyhd8ed1ab_0
  - rtree=0.8.3=py37h7b0cdae_1003
  - scikit-learn=1.0.2=py37hf9e9bfc_0
  - scipy=1.5.3=py37h8911b10_0
  - seaborn=0.12.2=hd8ed1ab_0
  - seaborn-base=0.12.2=pyhd8ed1ab_0
  - setuptools=65.6.3=py37h06a4308_0
  - shapely=1.6.4=py37hec07ddf_1006
  - sip=4.19.8=py37hf484d3e_1000
  - six=1.16.0=pyh6c4a22f_0
  - snowballstemmer=2.2.0=pyhd8ed1ab_0
  - snuggs=1.4.7=pyhd8ed1ab_1
  - soupsieve=2.3.2.post1=pyhd8ed1ab_0
  - sphinx=2.1.2=py_0
  - sphinx-gallery=0.4.0=py37_0
  - sphinx_rtd_theme=0.4.3=py_0
  - sphinxcontrib-applehelp=1.0.4=pyhd8ed1ab_0
  - sphinxcontrib-devhelp=1.0.2=py_0
  - sphinxcontrib-htmlhelp=2.0.1=pyhd8ed1ab_0
  - sphinxcontrib-jsmath=1.0.1=pyhd8ed1ab_0
  - sphinxcontrib-qthelp=1.0.3=py_0
  - sphinxcontrib-serializinghtml=1.1.5=pyhd8ed1ab_2
  - sqlite=3.45.3=h5eee18b_0
  - statsmodels=0.12.2=py37hb1e94ed_0
  - threadpoolctl=3.1.0=pyh8a188c0_0
  - tk=8.6.14=h39e8969_0
  - tornado=6.1=py37h540881e_3
  - traitlets=5.9.0=pyhd8ed1ab_0
  - typing-extensions=4.7.1=hd8ed1ab_0
  - typing_extensions=4.7.1=pyha770c72_0
  - tzcode=2022a=h166bdaf_0
  - urllib3=2.2.1=pyhd8ed1ab_0
  - wcwidth=0.2.10=pyhd8ed1ab_0
  - wheel=0.38.4=py37h06a4308_0
  - wrapt=1.14.1=py37h540881e_0
  - xerces-c=3.2.2=hea5cb30_1003
  - xorg-kbproto=1.0.7=h7f98852_1002
  - xorg-libice=1.0.10=h7f98852_0
  - xorg-libsm=1.2.3=hd9c2040_1000
  - xorg-libx11=1.7.2=h7f98852_0
  - xorg-libxau=1.0.9=h7f98852_0
  - xorg-libxdmcp=1.1.3=h7f98852_0
  - xorg-libxext=1.3.4=h7f98852_1
  - xorg-libxrender=0.9.10=h7f98852_1003
  - xorg-renderproto=0.11.1=h7f98852_1002
  - xorg-xextproto=7.3.0=h7f98852_1002
  - xorg-xproto=7.0.31=h7f98852_1007
  - xz=5.6.4=h5eee18b_1
  - yaml=0.2.5=h7f98852_2
  - zlib=1.2.13=h5eee18b_1
  - zope.interface=5.4.0=py37h540881e_2
  - zstd=1.5.0=ha95c52a_0
  - pip:
      - exceptiongroup==1.2.2
      - importlib-metadata==6.7.0
      - iniconfig==2.0.0
      - pluggy==1.2.0
      - pytest==7.4.4
      - tomli==2.0.1
      - zipp==3.15.0
prefix: /opt/conda/envs/geopandas

geopandas/tests/test_plotting.py::TestLineStringPlotting::test_single_color geopandas/tests/test_plotting.py::TestGeometryCollectionPlotting::test_colors geopandas/tests/test_plotting.py::TestGeometryCollectionPlotting::test_values
geopandas/tests/test_plotting.py::TestPointPlotting::test_figsize geopandas/tests/test_plotting.py::TestPointPlotting::test_default_colors geopandas/tests/test_plotting.py::TestPointPlotting::test_colormap geopandas/tests/test_plotting.py::TestPointPlotting::test_single_color geopandas/tests/test_plotting.py::TestPointPlotting::test_markersize geopandas/tests/test_plotting.py::TestPointPlotting::test_style_kwargs geopandas/tests/test_plotting.py::TestPointPlotting::test_legend geopandas/tests/test_plotting.py::TestPointPlotting::test_subplots_norm geopandas/tests/test_plotting.py::TestPointPlotting::test_empty_plot geopandas/tests/test_plotting.py::TestPointPlotting::test_multipoints geopandas/tests/test_plotting.py::TestPointPlotting::test_misssing geopandas/tests/test_plotting.py::TestPointZPlotting::test_plot geopandas/tests/test_plotting.py::TestLineStringPlotting::test_style_kwargs geopandas/tests/test_plotting.py::TestLineStringPlotting::test_subplots_norm geopandas/tests/test_plotting.py::TestLineStringPlotting::test_multilinestrings geopandas/tests/test_plotting.py::TestPolygonZPlotting::test_plot geopandas/tests/test_plotting.py::TestNonuniformGeometryPlotting::test_colors geopandas/tests/test_plotting.py::TestNonuniformGeometryPlotting::test_style_kwargs geopandas/tests/test_plotting.py::TestMapclassifyPlotting::test_legend geopandas/tests/test_plotting.py::TestMapclassifyPlotting::test_negative_legend geopandas/tests/test_plotting.py::TestMapclassifyPlotting::test_scheme_name_compat[FISHER_JENKS] geopandas/tests/test_plotting.py::TestMapclassifyPlotting::test_scheme_name_compat[FISHERJENKS] geopandas/tests/test_plotting.py::TestMapclassifyPlotting::test_classification_kwds geopandas/tests/test_plotting.py::TestMapclassifyPlotting::test_invalid_scheme geopandas/tests/test_plotting.py::TestMapclassifyPlotting::test_cax_legend_passing geopandas/tests/test_plotting.py::TestMapclassifyPlotting::test_cax_legend_height geopandas/tests/test_plotting.py::TestPlotCollections::test_points geopandas/tests/test_plotting.py::TestPlotCollections::test_points_values geopandas/tests/test_plotting.py::TestPlotCollections::test_linestrings geopandas/tests/test_plotting.py::TestPlotCollections::test_linestrings_values geopandas/tests/test_plotting.py::TestPlotCollections::test_polygons geopandas/tests/test_plotting.py::TestPlotCollections::test_polygons_values geopandas/tests/test_plotting.py::test_column_values
geopandas/plotting.py
geopandas/plotting.py