Plot Clusters
The plot_clusters
function in
oraclesai.vis
allows you to associate geometries and labels, and
display this association in a map.
The function works with data from SpatialDataFrame
or
GeoDataFrame
.
The following table describes the main parameters of the plot_clusters
function.
Parameter | Description |
---|---|
X |
The data with the geometries. It can be either a
SpatialDataFrame or a
GeoDataFrame .
|
labels |
The labels associated with X . Each observation in
X has a label assigned to it.
|
background_data |
A SpatialDataFrame or a
GeoDataFrame with its geometries as
background.
|
crs |
Indicates the coordinate reference system to be used for plotting. By
default, it uses X.crs .
|
with_bounds |
If True , each cluster is displayed with an enclosed
polygon.
|
with_noise |
If False , all the observations with the label –1 are
ignored. Otherwise, the observations are assigned to a cluster.
|
with_legend |
If True , a legend indicating the cluster’s labels is
displayed.
|
with_basemap |
If True , the default basemap is displayed. If a
TileProvider instance is passed, it uses it as the
basemap. Alternatively, it can also take a dictionary with the
oracles.vis.add_basemap parameters except
ax .
|
See the plot_clusters function in Python API Reference for Oracle Spatial AI for more information.
The following example trains a clustering model with a
LISAHotspotClustering
instance using the
MEDIAN_INCOME
column. It then displays the geometries and the
corresponding labels using the plot_clusters
function in a map.
import matplotlib.pyplot as plt
from oraclesai.weights import KNNWeightsDefinition
from oraclesai.clustering import LISAHotspotClustering
from oraclesai.vis import plot_clusters
X = block_groups["MEDIAN_INCOME"]
# Define spatial weights
weights_definition = KNNWeightsDefinition(k=10)
# Create an instance of LISAHotspotClustering
lisa_model = LISAHotspotClustering(max_p_value=0.05,
spatial_weights_definition=weights_definition)
# Train the model
lisa_model.fit(X)
fig, ax = plt.subplots(figsize=(12,12))
plot_clusters(X, lisa_model.labels_, with_noise=False, with_basemap=True, cmap='Dark2', ax=ax)
The output is as shown: