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
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
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
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
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]]))
def setUp(self): np.random.seed(42) p_srs = gpd.GeoSeries(utils.gaussian_points(n=100)) self.p_df = gpd.GeoDataFrame(geometry=p_srs)