pysal.viz.splot.giddy.dynamic_lisa_composite_explore

pysal.viz.splot.giddy.dynamic_lisa_composite_explore(rose, gdf, pattern='', p=0.05, figsize=(13, 10))[source]

Interactive exploration of dynamic LISA values for different dates in a dataframe. Note: only possible in jupyter notebooks

Parameters:
rose : giddy.directional.Rose instance

A Rose object, which contains (among other attributes) weights to calculate esda.moran.Moran_local values

gdf : geopandas dataframe instance

The Dataframe containing information and polygons to plot.

pattern : str, optional

Option to extract all columns ending with a specific pattern. Only extracted columns will be used for comparison.

p : float, optional

The p-value threshold for significance. Default =0.05

figsize: tuple, optional

W, h of figure. Default =(13,10)

Returns:
None

Examples

Note: this function creates Jupyter notebook widgets, so is meant only to run in a notebook.

>>> import geopandas as gpd
>>> import pandas as pd
>>> from pysal.lib.weights.contiguity import Queen
>>> from pysal.lib import examples
>>> import numpy as np
>>> import matplotlib.pyplot as plt

If you want to see figures embedded inline in a Jupyter notebook, add a line %matplotlib inline at the top of your notebook.

>>> from pysal.explore.giddy.directional import Rose
>>> from pysal.viz.splot.giddy import dynamic_lisa_composite_explore

get csv and shp files

>>> shp_link = examples.get_path('us48.shp')
>>> df = gpd.read_file(shp_link)
>>> income_table = pd.read_csv(examples.get_path("usjoin.csv"))

calculate relative values

>>> for year in range(1969, 2010):
...     income_table[str(year) + '_rel'] = (
...         income_table[str(year)] / income_table[str(year)].mean())

merge to one gdf

>>> gdf = df.merge(income_table,left_on='STATE_NAME',right_on='Name')

retrieve spatial weights and data for two points in time

>>> w = Queen.from_dataframe(gdf)
>>> w.transform = 'r'
>>> y1 = gdf['1969_rel'].values
>>> y2 = gdf['2000_rel'].values

calculate rose Object

>>> Y = np.array([y1, y2]).T
>>> rose = Rose(Y, w, k=5)

plot

>>> fig = dynamic_lisa_composite_explore(rose, gdf, pattern='rel')
>>> # plt.show()

(Source code)