Beispiel #1
0
        def create_scalemixin():
            scalemixin = ScaleMixin()
            # set props the mixin is responsible for
            scalemixin.kwargs = {'scale': 'foo', 'limits': (1, 5), 'scale_func': None}
            # set props set by the plot object initializer
            scalemixin.ax = None
            scalemixin.figsize = (8, 6)
            scalemixin.extent = None
            scalemixin.projection = None

            np.random.seed(42)
            scalemixin.df = gpd.GeoDataFrame(
                {'foo': np.random.random(100), 'geometry': utils.gaussian_points(n=100)}
            )
            return scalemixin
Beispiel #2
0
        def create_huemixin():
            huemixin = HueMixin()
            # set props the mixin is responsible for
            huemixin.kwargs = {'hue': 'foo', 'cmap': 'viridis', 'norm': None}
            # set props set by the plot object initializer
            huemixin.ax = None
            huemixin.figsize = (8, 6)
            huemixin.extent = None
            huemixin.projection = None

            np.random.seed(42)
            huemixin.df = gpd.GeoDataFrame(
                {'foo': np.random.random(100), 'geometry': utils.gaussian_points(n=100)}
            )
            return huemixin
Beispiel #3
0
        def create_legendmixin(legend_vars):
            legendmixin = LegendMixin()
            # set props the mixin is responsible for
            legendmixin.kwargs = {
                'legend': True,
                'legend_labels': None,
                'legend_values': None,
                'legend_kwargs': None,
                'legend_var': None
            }
            # set props controlled by the plot object initializer
            _, ax = plt.subplots(figsize=(8, 6))
            legendmixin.ax = ax
            legendmixin.figsize = (8, 6)
            legendmixin.extent = None
            legendmixin.projection = None

            # set data prop
            np.random.seed(42)
            legendmixin.df = gpd.GeoDataFrame({
                'foo':
                np.random.random(100),
                'geometry':
                utils.gaussian_points(n=100)
            })

            # set props controlled by the hue initializer, if appropriate
            if 'hue' in legend_vars:
                legendmixin.colors = ['black'] * 100
                legendmixin.hue = legendmixin.df.foo
                legendmixin.mpl_cm_scalar_mappable = ScalarMappable(
                    cmap='Reds')
                legendmixin.k = None
                legendmixin.categorical = False
                legendmixin.categories = None
                legendmixin.color_kwarg = 'color'
                legendmixin.default_color = 'steelblue'

            # set props controlled by the scale initializer, if appropriate
            if 'scale' in legend_vars:
                legendmixin.scale = legendmixin.df.foo
                legendmixin.limits = (1, 5)
                legendmixin.scale_func = None
                legendmixin.dscale = lambda v: 1
                legendmixin.sizes = [1] * 100

            return legendmixin
Beispiel #4
0
        def create_clipmixin():
            clipmixin = ClipMixin()
            clipmixin.kwargs = {
                'clip': gpd.GeoSeries(Polygon([[0, 0], [0, 100], [100, 100], [100, 0]]))
            }
            clipmixin.ax = None
            clipmixin.figsize = (8, 6)
            clipmixin.extent = None
            clipmixin.projection = None

            np.random.seed(42)
            points = utils.gaussian_points(n=2000)
            geoms = np.hstack([
                utils.gaussian_polygons(points, n=50), utils.gaussian_multi_polygons(points, n=50)
            ])
            clipmixin.df = gpd.GeoDataFrame({
                'foo': np.random.random(len(geoms)),
                'geometry': geoms,
            })
            return clipmixin
Beispiel #5
0
import numpy as np
import geopandas as gpd
from shapely.geometry import Polygon
from matplotlib.colors import Normalize
import matplotlib.pyplot as plt

from geoplot import utils
from geoplot import (
    pointplot, voronoi, kdeplot, polyplot, webmap, choropleth, cartogram, quadtree,
    sankey
)
from geoplot.crs import AlbersEqualArea, WebMercator


np.random.seed(42)
p_srs = gpd.GeoSeries(utils.gaussian_points(n=100))
p_df = gpd.GeoDataFrame(geometry=p_srs)
p_df = p_df.assign(var=p_df.geometry.map(lambda p: abs(p.y) + abs(p.x)))
p_df = p_df.assign(var_cat=np.floor(p_df['var'] // (p_df['var'].max() / 5)).astype(str))

poly_df = gpd.GeoDataFrame(geometry=utils.gaussian_polygons(p_srs.geometry, n=10))
poly_df = poly_df.assign(
    var=poly_df.geometry.centroid.x.abs() + poly_df.geometry.centroid.y.abs()
)

ls_df = gpd.GeoDataFrame(geometry=utils.gaussian_linestrings(p_srs.geometry))
ls_df = ls_df.assign(var=ls_df.geometry.centroid.x.abs() + ls_df.geometry.centroid.y.abs())

clip_geom = gpd.GeoSeries(Polygon([[-10, -10], [10, -10], [10, 10], [-10, 10]]))
non_clip_geom = gpd.GeoSeries(Polygon([[-30, -30], [30, -30], [30, 30], [-30, 30]]))
Beispiel #6
0
 def setUp(self):
     np.random.seed(42)
     p_srs = gpd.GeoSeries(utils.gaussian_points(n=100))
     self.p_df = gpd.GeoDataFrame(geometry=p_srs)